Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __usercall sub_12B4BAF(int a1@<eax>, int a2, signed int a3, int a4)
- {
- signed int v4; // esi
- char *v5; // eax
- signed int v6; // edi
- char v7; // cl
- char v8; // cl
- char v9; // cl
- char v10; // cl
- char v11; // cl
- char v12; // cl
- char v13; // cl
- char v14; // cl
- char v15; // cl
- char v16; // cl
- char v17; // cl
- char *v18; // eax
- char v19; // cl
- char v20; // cl
- char v21; // cl
- char v22; // cl
- char v23; // cl
- char v24; // cl
- char v25; // cl
- char v26; // cl
- char v27; // cl
- char v28; // cl
- char v29; // cl
- char v30; // cl
- char v31; // cl
- char v32; // cl
- char v33; // cl
- char v34; // cl
- char v35; // cl
- char v36; // cl
- char v37; // cl
- char v38; // cl
- char v39; // cl
- char v40; // cl
- char v41; // cl
- char v42; // cl
- char v43; // cl
- char v44; // cl
- char v45; // cl
- char v46; // cl
- char v47; // cl
- char v48; // cl
- char v49; // cl
- char v50; // cl
- char v51; // cl
- char v52; // cl
- char v53; // cl
- char v54; // cl
- char *v55; // ecx
- const char *v56; // eax
- char v57; // [esp+Ch] [ebp-40h]
- char v58; // [esp+2Ch] [ebp-20h]
- v4 = 31;
- switch ( a1 )
- {
- case 0:
- v5 = &v57;
- v6 = 31;
- do
- {
- v7 = v5["COP_NONE" - &v57];
- *v5++ = v7;
- if ( !v7 )
- goto LABEL_6;
- --v6;
- }
- while ( v6 );
- goto LABEL_7;
- case 1:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v8 = v5["COP_INIT" - &v57];
- *v5++ = v8;
- if ( !v8 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 2:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v9 = v5["COP_CONNECT" - &v57];
- *v5++ = v9;
- if ( !v9 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 3:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v10 = v5["COP_AUTHENTICATE" - &v57];
- *v5++ = v10;
- if ( !v10 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 4:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v11 = v5["COP_CREATE_ACCOUNT" - &v57];
- *v5++ = v11;
- if ( !v11 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 5:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v12 = v5["COP_CREATE_CHARACTER" - &v57];
- *v5++ = v12;
- if ( !v12 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 6:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v13 = v5["COP_GET_CHARACTERS" - &v57];
- *v5++ = v13;
- if ( !v13 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 7:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v14 = v5["COP_DELETE_CHARACTER" - &v57];
- *v5++ = v14;
- if ( !v14 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 8:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v15 = v5["COP_LOGIN_CHARACTER" - &v57];
- *v5++ = v15;
- if ( !v15 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 9:
- v5 = &v57;
- v6 = 31;
- while ( 1 )
- {
- v16 = v5["COP_GET_REALMS" - &v57];
- *v5++ = v16;
- if ( !v16 )
- goto LABEL_6;
- if ( !--v6 )
- goto LABEL_7;
- }
- case 10:
- v5 = &v57;
- v6 = 31;
- break;
- default:
- SStrPrintf(&v57, 32, "%d", a1);
- goto LABEL_49;
- }
- while ( 1 )
- {
- v17 = v5["COP_WAIT_QUEUE" - &v57];
- *v5++ = v17;
- if ( !v17 )
- break;
- if ( !--v6 )
- goto LABEL_7;
- }
- LABEL_6:
- if ( v6 )
- goto LABEL_49;
- LABEL_7:
- *v5 = 0;
- LABEL_49:
- if ( a3 <= 18 )
- {
- if ( a3 == 18 )
- {
- v18 = &v58;
- while ( 1 )
- {
- v37 = v18["AUTH_BILLING_ERROR" - &v58];
- *v18++ = v37;
- if ( !v37 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- }
- else
- {
- switch ( a3 )
- {
- case 0:
- v18 = &v58;
- while ( 1 )
- {
- v19 = v18["RESPONSE_SUCCESS" - &v58];
- *v18++ = v19;
- if ( !v19 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 1:
- v18 = &v58;
- while ( 1 )
- {
- v20 = v18["RESPONSE_FAILURE" - &v58];
- *v18++ = v20;
- if ( !v20 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 2:
- v18 = &v58;
- while ( 1 )
- {
- v21 = v18["RESPONSE_CANCELLED" - &v58];
- *v18++ = v21;
- if ( !v21 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 3:
- v18 = &v58;
- while ( 1 )
- {
- v22 = v18["RESPONSE_DISCONNECTED" - &v58];
- *v18++ = v22;
- if ( !v22 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 4:
- v18 = &v58;
- while ( 1 )
- {
- v23 = v18["RESPONSE_FAILED_TO_CONNECT" - &v58];
- *v18++ = v23;
- if ( !v23 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 5:
- v18 = &v58;
- while ( 1 )
- {
- v24 = v18["RESPONSE_CONNECTED" - &v58];
- *v18++ = v24;
- if ( !v24 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 6:
- v18 = &v58;
- while ( 1 )
- {
- v25 = v18["RESPONSE_VERSION_MISMATCH" - &v58];
- *v18++ = v25;
- if ( !v25 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 7:
- v18 = &v58;
- while ( 1 )
- {
- v26 = v18["CSTATUS_CONNECTING" - &v58];
- *v18++ = v26;
- if ( !v26 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 8:
- v18 = &v58;
- while ( 1 )
- {
- v27 = v18["CSTATUS_NEGOTIATING_SECURITY" - &v58];
- *v18++ = v27;
- if ( !v27 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 9:
- v18 = &v58;
- while ( 1 )
- {
- v28 = v18["CSTATUS_NEGOTIATION_COMPLETE" - &v58];
- *v18++ = v28;
- if ( !v28 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 10:
- v18 = &v58;
- while ( 1 )
- {
- v29 = v18["CSTATUS_NEGOTIATION_FAILED" - &v58];
- *v18++ = v29;
- if ( !v29 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 11:
- v18 = &v58;
- while ( 1 )
- {
- v30 = v18["CSTATUS_AUTHENTICATING" - &v58];
- *v18++ = v30;
- if ( !v30 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 12:
- v18 = &v58;
- while ( 1 )
- {
- v31 = v18["AUTH_OK" - &v58];
- *v18++ = v31;
- if ( !v31 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 13:
- v18 = &v58;
- while ( 1 )
- {
- v32 = v18["AUTH_FAILED" - &v58];
- *v18++ = v32;
- if ( !v32 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 14:
- v18 = &v58;
- while ( 1 )
- {
- v33 = v18["AUTH_REJECT" - &v58];
- *v18++ = v33;
- if ( !v33 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 15:
- v18 = &v58;
- while ( 1 )
- {
- v34 = v18["AUTH_BAD_SERVER_PROOF" - &v58];
- *v18++ = v34;
- if ( !v34 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 16:
- v18 = &v58;
- while ( 1 )
- {
- v35 = v18["AUTH_UNAVAILABLE" - &v58];
- *v18++ = v35;
- if ( !v35 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- case 17:
- v18 = &v58;
- break;
- default:
- goto LABEL_207;
- }
- while ( 1 )
- {
- v36 = v18["AUTH_SYSTEM_ERROR" - &v58];
- *v18++ = v36;
- if ( !v36 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- }
- goto LABEL_216;
- }
- if ( a3 > 75 )
- {
- if ( a3 == 76 )
- {
- v18 = &v58;
- while ( 1 )
- {
- v54 = v18["CHAR_DELETE_FAILED_ARENA_CAPTAIN" - &v58];
- *v18++ = v54;
- if ( !v54 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- }
- if ( a3 != 77 )
- goto LABEL_207;
- v18 = &v58;
- while ( 1 )
- {
- v53 = v18["CHAR_DELETE_FAILED_HAS_HEIRLOOM_OR_MAIL" - &v58];
- *v18++ = v53;
- if ( !v53 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- }
- else if ( a3 == 75 )
- {
- v18 = &v58;
- while ( 1 )
- {
- v52 = v18["CHAR_DELETE_FAILED_GUILD_LEADER" - &v58];
- *v18++ = v52;
- if ( !v52 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- }
- else if ( a3 > 26 )
- {
- switch ( a3 )
- {
- case 27:
- v18 = &v58;
- while ( 1 )
- {
- v51 = v18["AUTH_WAIT_QUEUE" - &v58];
- *v18++ = v51;
- if ( !v51 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 35:
- v18 = &v58;
- while ( 1 )
- {
- v50 = v18["REALM_LIST_IN_PROGRESS" - &v58];
- *v18++ = v50;
- if ( !v50 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 36:
- v18 = &v58;
- while ( 1 )
- {
- v49 = v18["REALM_LIST_SUCCESS" - &v58];
- *v18++ = v49;
- if ( !v49 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 37:
- v18 = &v58;
- while ( 1 )
- {
- v48 = v18["REALM_LIST_FAILED" - &v58];
- *v18++ = v48;
- if ( !v48 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 38:
- v18 = &v58;
- while ( 1 )
- {
- v47 = v18["REALM_LIST_INVALID" - &v58];
- *v18++ = v47;
- if ( !v47 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 39:
- v18 = &v58;
- while ( 1 )
- {
- v46 = v18["REALM_LIST_REALM_NOT_FOUND" - &v58];
- *v18++ = v46;
- if ( !v46 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- default:
- goto LABEL_207;
- }
- }
- else
- {
- switch ( a3 )
- {
- case 26:
- v18 = &v58;
- while ( 1 )
- {
- v45 = v18["AUTH_LOGIN_SERVER_NOT_FOUND" - &v58];
- *v18++ = v45;
- if ( !v45 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 19:
- v18 = &v58;
- while ( 1 )
- {
- v44 = v18["AUTH_BILLING_EXPIRED" - &v58];
- *v18++ = v44;
- if ( !v44 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 20:
- v18 = &v58;
- while ( 1 )
- {
- v43 = v18["AUTH_VERSION_MISMATCH" - &v58];
- *v18++ = v43;
- if ( !v43 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 21:
- v18 = &v58;
- while ( 1 )
- {
- v42 = v18["AUTH_UNKNOWN_ACCOUNT" - &v58];
- *v18++ = v42;
- if ( !v42 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 22:
- v18 = &v58;
- while ( 1 )
- {
- v41 = v18["AUTH_INCORRECT_PASSWORD" - &v58];
- *v18++ = v41;
- if ( !v41 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 23:
- v18 = &v58;
- while ( 1 )
- {
- v40 = v18["AUTH_SESSION_EXPIRED" - &v58];
- *v18++ = v40;
- if ( !v40 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 24:
- v18 = &v58;
- while ( 1 )
- {
- v39 = v18["AUTH_SERVER_SHUTTING_DOWN" - &v58];
- *v18++ = v39;
- if ( !v39 )
- break;
- if ( !--v4 )
- goto LABEL_217;
- }
- break;
- case 25:
- v18 = &v58;
- while ( 1 )
- {
- v38 = v18["AUTH_ALREADY_LOGGING_IN" - &v58];
- *v18++ = v38;
- if ( !v38 )
- goto LABEL_216;
- if ( !--v4 )
- goto LABEL_217;
- }
- default:
- LABEL_207:
- SStrPrintf(&v58, 32, "%d", a3);
- goto LABEL_218;
- }
- }
- LABEL_216:
- if ( !v4 )
- LABEL_217:
- *v18 = 0;
- LABEL_218:
- if ( a2 )
- {
- v55 = dword_1676BDC;
- }
- else
- {
- if ( a4 )
- {
- v55 = "result=TRUE";
- LABEL_224:
- v56 = "Completed";
- goto LABEL_225;
- }
- v55 = "result=FALSE";
- }
- v56 = "Initiating";
- if ( !a2 )
- goto LABEL_224;
- LABEL_225:
- sub_E9A027("ClientConnection %s: %s code=%s %s", v56, &v57, &v58, v55);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement