Function at 0x1408210
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
push ebx
push esi
push edi
mov esi, ecx
call fcn.014080f0
mov eax, dword [0x15bbf3c]
test eax, eax
jne 0x140823e
push 0x218
call fcn.01428445
add esp, 4
mov dword [0x15bbf3c], eax
push 0x218
push 0
push eax
call fcn.0142abb0
mov eax, dword [0x15bbf38]
add esp, 0xc
test eax, eax
jne 0x1408269
push 0xac
call fcn.01428445
add esp, 4
mov dword [0x15bbf38], eax
push 0xac
push 0
push eax
call fcn.0142abb0
add esp, 0xc
mov dword [0x15bcf60], 0
mov dword [0x15bbef8], 0
mov dword [0x15bcf54], 0
mov dword [0x15bbefc], 0
push 0x1f
push dword [ebp + 8]
mov byte [0x15bbee1], 0
push 0x15bbf00
call fcn.01435640
mov eax, dword [0x15bbec8]
add esp, 0xc
mov dword [0x15bbf28], eax
mov eax, dword [0x15bbed0]
mov byte [0x15bbf1f], 0
mov dword [0x15bbf24], 0x1590188
mov dword [0x15bbf2c], 0x15905c4
mov dword [0x15bbf30], eax
mov dword [0x15bbf34], 0x68
test esi, esi
je 0x1408336
push 0x1c
lea eax, [ebp - 0x11c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
jne 0x140830f
xor ecx, ecx
jmp 0x1408324
mov ecx, dword [ebp - 0x118]
xor eax, eax
cmp dword [ebp - 0x104], 0x1000000
cmovne ecx, eax
mov eax, dword [esi + 0x3c]
xor edx, edx
add eax, 0x50
mov dword [0x15bcf74], esi
add eax, esi
jmp 0x1408350
mov ecx, dword [0xc]
mov edx, 1
mov dword [0x15bbef0], 0
mov eax, 0x1c
mov eax, dword [eax]
mov dword [0x15bbef8], eax
lea eax, [ebp - 0x14]
push eax
push str..text
push ecx
mov dword [0x15bcf60], ecx
mov dword [0x15bcf70], edx
mov dword [ebp - 0x14], 0
call fcn.0140bab0
mov ecx, dword [0x15bcf60]
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x1408394
mov edi, dword [0x15bbef8]
mov dword [ebp - 8], ecx
jmp 0x1408397
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x14]
mov dword [ebp - 4], edi
push eax
push 0x15862c8
push ecx
mov dword [ebp - 0x14], 0
call fcn.0140bab0
mov ecx, dword [0x15bcf60]
add esp, 0xc
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x14083ce
mov esi, dword [0x15bbef8]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x24], esi
jmp 0x14083d4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push 0x15862d4
push ecx
call fcn.0140bab0
mov ebx, dword [0x15bcf60]
add esp, 0xc
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x1408404
mov eax, dword [0x15bbef8]
mov dword [ebp - 0x1c], ebx
jmp 0x1408407
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
test eax, eax
je 0x140847b
add edi, 0xfffffff2
mov ecx, eax
add edi, eax
cmp eax, edi
jae 0x140847b
mov esi, eax
sub esi, 0x1586654
xor eax, eax
nop word [eax + eax]
mov dl, byte [eax + 0x1586654]
cmp dl, 0x2a
je 0x1408444
cmp dl, byte [esi + eax + 0x1586654]
jne 0x1408475
inc eax
cmp eax, 0xe
jb 0x1408430
test ecx, ecx
je 0x140847b
mov dword [0x15bd548], ecx
xor edx, edx
mov al, byte [ecx]
cmp al, 0xff
jne 0x140857a
mov al, byte [ecx + 1]
cmp al, 0x15
jne 0x140856f
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x140858a
inc ecx
inc esi
cmp ecx, edi
jb 0x1408424
mov ecx, dword [0x15bd548]
cmp dword [0x15bcf7c], 0
jne 0x1408623
test ebx, ebx
je 0x1408653
mov edi, dword [0x15bbef8]
mov esi, ebx
add edi, 0xfffffff5
add edi, esi
cmp esi, edi
jae 0x1408653
mov edx, esi
sub edx, str.Exe_build:
xor eax, eax
mov cl, byte [eax + str.Exe_build:]
cmp cl, 0x2a
je 0x14084cd
cmp cl, byte [edx + eax + str.Exe_build:]
jne 0x14085b2
inc eax
cmp eax, 0xb
jb 0x14084b5
test esi, esi
je 0x1408653
mov eax, dword [0x1586678]
movq xmm0, qword [0x1586670]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x5c], eax
mov al, byte [0x158667c]
movq qword [ebp - 0x64], xmm0
mov byte [ebp - 0x58], al
mov dword [ebp - 0x5d], esi
test edx, edx
je 0x1408653
mov edi, dword [ebp - 4]
mov ecx, edx
add edi, 0xfffffff4
add edi, edx
cmp edx, edi
jae 0x1408653
mov esi, edx
lea eax, [ebp - 0x64]
sub esi, eax
nop
xor eax, eax
lea edx, [ebp - 0x64]
add edx, eax
mov bl, byte [edx]
cmp bl, 0x2a
je 0x1408537
cmp bl, byte [esi + edx]
jne 0x14085d0
inc eax
cmp eax, 0xc
jb 0x1408522
test ecx, ecx
je 0x1408653
mov dword [0x15bd548], ecx
xor edx, edx
nop dword [eax]
mov al, byte [ecx]
cmp al, 0xff
jne 0x14085f9
mov al, byte [ecx + 1]
cmp al, 0x15
jne 0x14085ee
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x1408609
cmp al, 0x25
jne 0x14085a6
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x140858a
cmp al, 0xe8
je 0x1408582
cmp al, 0xe9
jne 0x14085a6
mov eax, dword [ecx + 1]
add ecx, 5
add ecx, eax
inc edx
mov dword [0x15bd548], ecx
cmp edx, 1
jb 0x1408456
mov eax, ecx
mov dword [0x15bcf7c], eax
jmp 0x1408481
xor eax, eax
mov dword [0x15bcf7c], eax
jmp 0x1408481
inc esi
inc edx
cmp esi, edi
jb 0x14084b3
push str.MH_LoadEngine:_Failed_to_locate_buildnumber
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc ecx
inc esi
cmp ecx, edi
jb 0x1408520
push str.MH_LoadEngine:_Failed_to_locate_buildnumber
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x25
jne 0x1408649
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x1408609
cmp al, 0xe8
je 0x1408601
cmp al, 0xe9
jne 0x1408649
mov eax, dword [ecx + 1]
add ecx, 5
add ecx, eax
inc edx
mov dword [0x15bd548], ecx
cmp edx, 1
jb 0x1408550
mov dword [0x15bcf7c], ecx
test ecx, ecx
je 0x1408653
cmp dword [0x15bcf70], 0
jne 0x140882b
mov eax, dword [0x15bcf74]
test eax, eax
je 0x1408667
push 0x1453dd4
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
jmp 0x1408684
mov dword [0x15bcf7c], 0
push str.MH_LoadEngine:_Failed_to_locate_buildnumber
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x15bbef0]
test ecx, ecx
je 0x1408682
mov ecx, dword [ecx + 8]
mov eax, dword [ecx + 8]
add ecx, 0xc
add eax, ecx
call eax
mov esi, eax
jmp 0x1408684
xor esi, esi
push 0
push str.SCEngineClient002
call esi
add esp, 8
test eax, eax
jne 0x1408922
push eax
push str.SCEngineClient001
call esi
add esp, 8
test eax, eax
jne 0x1408922
call dword [0x15bcf7c]
cmp eax, 0x2328
jle 0x14087cf
mov dword [0x15bcf70], 4
mov eax, dword [0x15bcf60]
mov ecx, dword [0x15bd548]
test eax, eax
je 0x1408946
mov edi, eax
mov eax, dword [0x15bbef8]
lea ebx, [eax - 0x2f]
add ebx, edi
cmp edi, ebx
jae 0x140894b
mov esi, edi
sub esi, str.could_not_link_client.dll_function_Initialize_n
xor eax, eax
nop word [eax + eax]
mov dl, byte [eax + str.could_not_link_client.dll_function_Initialize_n]
cmp dl, 0x2a
je 0x1408718
cmp dl, byte [esi + eax + str.could_not_link_client.dll_function_Initialize_n]
jne 0x1408abb
inc eax
cmp eax, 0x2f
jb 0x1408700
test edi, edi
je 0x1408946
mov eax, dword [0x1586730]
movq xmm0, qword [0x1586728]
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x7c], eax
mov al, byte [0x1586734]
movq qword [ebp - 0x84], xmm0
mov byte [ebp - 0x78], al
mov dword [ebp - 0x83], edi
test edx, edx
je 0x1408a6e
lea eax, [ebx - 0xc]
mov edi, edx
add eax, edx
cmp edx, eax
jae 0x1408a6e
mov esi, edx
lea eax, [ebp - 0x84]
sub esi, eax
xor eax, eax
lea edx, [ebp - 0x84]
add edx, eax
mov bl, byte [edx]
cmp bl, 0x2a
je 0x140878d
cmp bl, byte [esi + edx]
jne 0x1408aca
inc eax
cmp eax, 0xc
jb 0x1408775
test edi, edi
je 0x1408946
lea edx, [edi + 5]
test edx, edx
jne 0x14087a5
lea edx, [ecx + 5]
mov dword [0x15bd548], edx
xor ecx, ecx
nop dword [eax]
mov al, byte [edx]
cmp al, 0xff
jne 0x1408af2
mov al, byte [edx + 1]
cmp al, 0x15
jne 0x1408ae7
mov eax, dword [edx + 2]
mov edx, dword [eax]
jmp 0x1408b02
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x1408825
mov edi, dword [ebp - 0x24]
mov esi, eax
add edi, 0xffffffe3
add edi, eax
cmp eax, edi
jae 0x1408825
mov edx, eax
sub edx, str.Half_Life__i__s__hw_build__d_
nop dword [eax]
xor eax, eax
mov cl, byte [eax + str.Half_Life__i__s__hw_build__d_]
cmp cl, 0x2a
je 0x1408806
cmp cl, byte [edx + eax + str.Half_Life__i__s__hw_build__d_]
jne 0x140881f
inc eax
cmp eax, 0x1d
jb 0x14087f2
test esi, esi
je 0x1408825
mov dword [0x15bcf70], 2
jmp 0x14086c6
inc esi
inc edx
cmp esi, edi
jb 0x14087f0
mov ecx, dword [0x15bd548]
cmp dword [0x15bcf70], 3
mov eax, dword [0x15bcf60]
jne 0x14086d1
test eax, eax
je 0x1408946
mov edi, eax
mov eax, dword [0x15bbef8]
lea ebx, [eax - 0x33]
add ebx, edi
cmp edi, ebx
jae 0x140894b
mov esi, edi
sub esi, str.Couldnt_link_client_library_function__Initialize__n
xor eax, eax
mov dl, byte [eax + str.Couldnt_link_client_library_function__Initialize__n]
cmp dl, 0x2a
je 0x140887b
cmp dl, byte [esi + eax + str.Couldnt_link_client_library_function__Initialize__n]
jne 0x140893c
inc eax
cmp eax, 0x33
jb 0x1408863
test edi, edi
je 0x1408946
mov eax, dword [0x1586730]
movq xmm0, qword [0x1586728]
mov edx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x6c], eax
mov al, byte [0x1586734]
movq qword [ebp - 0x74], xmm0
mov byte [ebp - 0x68], al
mov dword [ebp - 0x73], edi
test edx, edx
je 0x1408a6e
lea eax, [ebx - 0xc]
mov edi, edx
add eax, edx
cmp edx, eax
jae 0x1408a6e
mov esi, edx
lea eax, [ebp - 0x74]
sub esi, eax
nop dword [eax]
xor eax, eax
lea edx, [ebp - 0x74]
add edx, eax
mov bl, byte [edx]
cmp bl, 0x2a
je 0x14088e7
cmp bl, byte [esi + edx]
jne 0x1408a5b
inc eax
cmp eax, 0xc
jb 0x14088d2
test edi, edi
je 0x1408946
lea edx, [edi + 5]
test edx, edx
jne 0x14088fb
lea edx, [ecx + 5]
mov dword [0x15bd548], edx
xor ecx, ecx
mov al, byte [edx]
cmp al, 0xff
jne 0x1408a83
mov al, byte [edx + 1]
cmp al, 0x15
jne 0x1408a78
mov eax, dword [edx + 2]
mov edx, dword [eax]
jmp 0x1408a93
mov eax, dword [0x15bcf60]
mov ecx, dword [0x15bd548]
mov dword [0x15bcf70], 3
jmp 0x140883d
inc edi
inc esi
cmp edi, ebx
jb 0x1408861
mov eax, dword [0x15bbef8]
mov ebx, dword [ebp - 4]
mov ecx, dword [0x15bcf60]
test ecx, ecx
je 0x1408a3a
mov esi, ecx
lea edi, [esi - 0xb]
add edi, eax
cmp esi, edi
jae 0x1408a3a
mov edx, esi
sub edx, str.ScreenShake
xor eax, eax
mov cl, byte [eax + str.ScreenShake]
cmp cl, 0x2a
je 0x140898d
cmp cl, byte [edx + eax + str.ScreenShake]
jne 0x1408b1d
inc eax
cmp eax, 0xb
jb 0x1408975
test esi, esi
je 0x1408a34
mov eax, dword [0x158677c]
movq xmm0, qword [0x1586774]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 8]
movq qword [ebp - 0xe0], xmm0
mov dword [ebp - 0xda], esi
test eax, eax
je 0x1408a34
add ebx, 0xfffffff5
mov edi, eax
add ebx, eax
cmp eax, ebx
jae 0x1408a34
mov esi, eax
lea eax, [ebp - 0xe0]
sub esi, eax
nop dword [eax + eax]
xor eax, eax
lea ecx, [ebp - 0xe0]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x14089fa
cmp dl, byte [esi + ecx]
jne 0x1408b2c
inc eax
cmp eax, 0xb
jb 0x14089e2
test edi, edi
je 0x1408a34
push 0x1409ea0
push 0x200
push edi
call fcn.0140c350
add esp, 0xc
test eax, eax
je 0x1408a34
push 0
push 0
push 0x1409f20
push 0x30
push edi
mov dword [0x15bcf80], eax
call fcn.0140c7a0
add esp, 0x14
mov ecx, dword [0x15bcf60]
cmp dword [0x15bcf80], 0
jne 0x1408b3b
push str.MH_LoadEngine:_Failed_to_locate_ClientDLL_Init
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 4]
inc edi
inc esi
lea eax, [ebx - 0xc]
add eax, dword [ebp - 8]
cmp edi, eax
jb 0x14088d0
mov eax, dword [0x15bbef8]
jmp 0x140894e
cmp al, 0x25
jne 0x1408aae
mov eax, dword [edx + 2]
mov edx, dword [eax]
jmp 0x1408a93
cmp al, 0xe8
je 0x1408a8b
cmp al, 0xe9
jne 0x1408aae
mov eax, dword [edx + 1]
add edx, 5
add edx, eax
inc ecx
mov dword [0x15bd548], edx
cmp ecx, 1
jb 0x1408903
mov dword [0x15bcf78], edx
jmp 0x1408946
xor edx, edx
mov dword [0x15bcf78], edx
jmp 0x1408946
inc edi
inc esi
cmp edi, ebx
jb 0x14086f5
jmp 0x1408946
mov ebx, dword [ebp - 4]
inc edi
inc esi
lea eax, [ebx - 0xc]
add eax, dword [ebp - 8]
cmp edi, eax
jb 0x1408773
mov eax, dword [0x15bbef8]
jmp 0x140894e
cmp al, 0x25
jne 0x1408aae
mov eax, dword [edx + 2]
mov edx, dword [eax]
jmp 0x1408b02
cmp al, 0xe8
je 0x1408afa
cmp al, 0xe9
jne 0x1408aae
mov eax, dword [edx + 1]
add edx, 5
add edx, eax
inc ecx
mov dword [0x15bd548], edx
cmp ecx, 1
jb 0x14087b0
mov dword [0x15bcf78], edx
jmp 0x1408946
inc esi
inc edx
cmp esi, edi
jb 0x1408973
jmp 0x1408a34
inc edi
inc esi
cmp edi, ebx
jb 0x14089e0
jmp 0x1408a34
cmp dword [0x15bcf64], 0
jne 0x1408b58
push str.MH_LoadEngine:_Failed_to_locate_ppEngfuncs
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x15bbf44], 0
jne 0x1408b75
push str.MH_LoadEngine:_Failed_to_locate_ppExportFuncs
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x1408cbc
mov edi, dword [0x15bbef8]
mov esi, ecx
add edi, 0xfffffff3
add edi, esi
cmp esi, edi
jae 0x1408cbc
mov edx, esi
sub edx, str.cl_righthand
nop word [eax + eax]
xor eax, eax
mov cl, byte [eax + str.cl_righthand]
cmp cl, 0x2a
je 0x1408bba
cmp cl, byte [eax + edx + str.cl_righthand]
jne 0x1408cb2
inc eax
cmp eax, 0xd
jb 0x1408ba2
test esi, esi
je 0x1408cbc
mov eax, dword [0x158681c]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov ax, word [0x1586820]
mov word [ebp - 0x28], ax
mov al, byte [0x1586822]
mov byte [ebp - 0x26], al
mov dword [ebp - 0x2b], esi
test ecx, ecx
je 0x1408cda
mov ebx, dword [ebp - 4]
mov edi, ecx
add ebx, 0xfffffffa
add ebx, ecx
cmp ecx, ebx
jae 0x1408cda
mov esi, ecx
lea eax, [ebp - 0x2c]
sub esi, eax
nop dword [eax]
xor eax, eax
lea ecx, [ebp - 0x2c]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1408c27
cmp dl, byte [ecx + esi]
jne 0x1408cd0
inc eax
cmp eax, 6
jb 0x1408c12
test edi, edi
je 0x1408cda
lea esi, [edi - 0x109]
cmp edi, esi
jbe 0x1408c8f
mov edx, edi
sub edx, 0x1586824
nop word [eax + eax]
xor eax, eax
mov cl, byte [eax + 0x1586824]
cmp cl, 0x2a
je 0x1408c6a
cmp cl, byte [eax + edx + 0x1586824]
jne 0x1408cee
inc eax
cmp eax, 9
jb 0x1408c52
test edi, edi
je 0x1408c8f
push dword [edi + 1]
lea eax, [edi + 9]
push 0
push 0x1409f80
push 0x100
push eax
call fcn.0140c7a0
add esp, 0x14
cmp dword [0x15bbf40], 0
mov ebx, dword [0x15bcf60]
jne 0x1408cfa
push str.MH_LoadEngine:_Failed_to_locate_g_hClientModule
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc esi
inc edx
cmp esi, edi
jb 0x1408ba0
push str.MH_LoadEngine:_Failed_to_locate_cl_righthand
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1408c10
push str.MH_LoadEngine:_Failed_to_locate_push_cl_righthand_string
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec edi
dec edx
cmp edi, esi
ja 0x1408c50
jmp 0x1408c8f
mov edx, dword [0x15bbef8]
test ebx, ebx
je 0x1408de4
mov esi, ebx
lea edi, [edx - 0xf]
add edi, esi
cmp esi, edi
jae 0x1408de4
mov edx, esi
sub edx, str.VClientVGUI001
nop
xor eax, eax
mov cl, byte [eax + str.VClientVGUI001]
cmp cl, 0x2a
je 0x1408d3a
cmp cl, byte [eax + edx + str.VClientVGUI001]
jne 0x1408e05
inc eax
cmp eax, 0xf
jb 0x1408d22
test esi, esi
je 0x1408dde
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add ebx, 0xfffffff9
add ebx, ecx
mov dword [ebp - 0x44], 0x2a68006a
mov dword [ebp - 0x40], 0x2a2a2a
mov edi, ecx
mov dword [ebp - 0x41], esi
cmp ecx, ebx
jae 0x1408dd8
mov esi, ecx
lea eax, [ebp - 0x44]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0x44]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1408d88
cmp dl, byte [ecx + esi]
jne 0x1408e11
inc eax
cmp eax, 7
jb 0x1408d73
test edi, edi
je 0x1408dd8
lea ebx, [edi - 0x109]
mov esi, edi
cmp edi, ebx
jbe 0x1408e23
mov edx, edi
sub edx, 0x15868dc
nop word [eax + eax]
xor eax, eax
mov cl, byte [eax + 0x15868dc]
cmp cl, 0x2a
je 0x1408dc6
cmp cl, byte [eax + edx + 0x15868dc]
jne 0x1408e1d
inc eax
cmp eax, 9
jb 0x1408db2
test edi, edi
je 0x1408e23
mov eax, dword [edi + 1]
mov dword [0x15bbedc], eax
mov ebx, dword [0x15bcf60]
mov edx, dword [0x15bbef8]
cmp dword [0x15bbedc], 0
jne 0x1408e74
push str.MH_LoadEngine:_Failed_to_locate_ClientFactory
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc esi
inc edx
cmp esi, edi
jb 0x1408d20
jmp 0x1408dde
inc edi
inc esi
cmp edi, ebx
jb 0x1408d71
jmp 0x1408dd8
dec edi
dec edx
cmp edi, ebx
ja 0x1408db0
cmp esi, ebx
jbe 0x1408dd8
mov edx, esi
sub edx, 0x15868e8
nop
xor eax, eax
mov cl, byte [eax + 0x15868e8]
cmp cl, 0x2a
je 0x1408e46
cmp cl, byte [eax + edx + 0x15868e8]
jne 0x1408e69
inc eax
cmp eax, 9
jb 0x1408e32
mov ebx, dword [0x15bcf60]
mov edx, dword [0x15bbef8]
test esi, esi
je 0x1408de4
mov eax, dword [esi + 2]
mov dword [0x15bbedc], eax
jmp 0x1408de4
dec esi
dec edx
cmp esi, ebx
ja 0x1408e30
jmp 0x1408dd8
cmp dword [0x15bcf70], 3
mov ecx, 0x86
mov eax, dword [0x15bcf64]
mov edi, dword [0x15bbf3c]
mov esi, dword [eax]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x15bbf3c]
mov eax, dword [eax + 0x198]
mov dword [0x15bcf6c], eax
jne 0x1408fe3
test ebx, ebx
je 0x1408fb1
lea esi, [edx - 0xc]
add esi, ebx
cmp ebx, esi
jae 0x1408fb1
mov edx, ebx
sub edx, str._fullscreen
xor eax, eax
mov cl, byte [eax + str._fullscreen]
cmp cl, 0x2a
je 0x1408edc
cmp cl, byte [eax + edx + str._fullscreen]
jne 0x1408fa7
inc eax
cmp eax, 0xc
jb 0x1408ec4
test ebx, ebx
je 0x1408fb1
movq xmm0, qword [0x1586934]
mov ecx, dword [ebp - 8]
mov edi, ecx
mov eax, dword [0x158693c]
movq qword [ebp - 0xa4], xmm0
mov dword [ebp - 0xa3], ebx
mov ebx, dword [ebp - 4]
add ebx, 0xfffffff3
mov dword [ebp - 0x9c], eax
mov ax, word [0x1586940]
add ebx, ecx
mov word [ebp - 0x98], ax
cmp ecx, ebx
jae 0x1408fb1
mov esi, ecx
lea eax, [ebp - 0xa4]
sub esi, eax
nop word [eax + eax]
xor eax, eax
lea ecx, [ebp - 0xa4]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1408f56
cmp dl, byte [ecx + esi]
jne 0x1408fc5
inc eax
cmp eax, 0xd
jb 0x1408f42
test edi, edi
je 0x1408fb1
add edi, 0xd
je 0x1408fb1
lea eax, [ebp - 0x18]
xorps xmm0, xmm0
push eax
push 0
push 0x140a040
push 0x400
push edi
movlpd qword [ebp - 0x18], xmm0
call fcn.0140c7a0
add esp, 0x14
cmp dword [0x15bcf50], 0
jne 0x14090ca
push str.MH_LoadEngine:_Failed_to_locate_g_pVideoMode
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc ebx
inc edx
cmp ebx, esi
jb 0x1408ec2
push str.MH_LoadEngine:_Failed_to_locate_VideoMode_SearchBase
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1408f40
push str.MH_LoadEngine:_Failed_to_locate_VideoMode_SearchBase
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x1408fb1
lea esi, [edx - 4]
add esi, ebx
cmp ebx, esi
jae 0x1408fb1
mov edx, ebx
sub edx, 0x1586944
nop dword [eax + eax]
xor eax, eax
mov cl, byte [eax + 0x1586944]
cmp cl, 0x2a
je 0x140901a
cmp cl, byte [eax + edx + 0x1586944]
jne 0x1409092
inc eax
cmp eax, 4
jb 0x1409002
test ebx, ebx
je 0x1408fb1
movq xmm0, qword [0x1586934]
mov ecx, dword [ebp - 8]
mov edi, ecx
mov eax, dword [0x158693c]
movq qword [ebp - 0xb4], xmm0
mov dword [ebp - 0xb3], ebx
mov ebx, dword [ebp - 4]
add ebx, 0xfffffff3
mov dword [ebp - 0xac], eax
mov ax, word [0x1586940]
add ebx, ecx
mov word [ebp - 0xa8], ax
cmp ecx, ebx
jae 0x1408fb1
mov esi, ecx
lea eax, [ebp - 0xb4]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0xb4]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409087
cmp dl, byte [ecx + esi]
jne 0x14090b0
inc eax
cmp eax, 0xd
jb 0x1409073
jmp 0x1408f5c
inc ebx
inc edx
cmp ebx, esi
jb 0x1409000
push str.MH_LoadEngine:_Failed_to_locate_VideoMode_SearchBase
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1409071
push str.MH_LoadEngine:_Failed_to_locate_VideoMode_SearchBase
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [0x15bcf60]
test esi, esi
je 0x1409207
mov edi, dword [0x15bbef8]
add edi, 0xfffffff8
add edi, esi
cmp esi, edi
jae 0x1409207
mov edx, esi
sub edx, str.HudText
xor eax, eax
mov cl, byte [eax + str.HudText]
cmp cl, 0x2a
je 0x140910d
cmp cl, byte [eax + edx + str.HudText]
jne 0x14091b4
inc eax
cmp eax, 8
jb 0x14090f5
mov ecx, dword [ebp - 4]
test esi, esi
je 0x140920a
mov eax, dword [0x15869c8]
lea ebx, [ecx - 0xe]
movq xmm0, qword [str.Ph]
mov dword [ebp - 0x4c], eax
mov ax, word [0x15869cc]
mov word [ebp - 0x48], ax
mov al, byte [0x15869ce]
mov byte [ebp - 0x46], al
mov eax, dword [ebp - 8]
mov edi, eax
add ebx, eax
movq qword [ebp - 0x54], xmm0
mov dword [ebp - 0x52], esi
cmp eax, ebx
jae 0x140920a
mov esi, eax
lea eax, [ebp - 0x54]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0x54]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409174
cmp dl, byte [ecx + esi]
jne 0x14091c0
inc eax
cmp eax, 0xe
jb 0x1409163
test edi, edi
je 0x1409207
lea ecx, [edi + 6]
test ecx, ecx
jne 0x1409192
mov ecx, dword [0x15bd548]
add ecx, 5
mov dword [0x15bd548], ecx
xor edx, edx
nop word [eax + eax]
mov al, byte [ecx]
cmp al, 0xff
jne 0x14091d3
mov al, byte [ecx + 1]
cmp al, 0x15
jne 0x14091c8
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x14091e3
inc esi
inc edx
cmp esi, edi
jb 0x14090f3
jmp 0x1409207
inc edi
inc esi
cmp edi, ebx
jb 0x1409161
jmp 0x1409207
cmp al, 0x25
jne 0x14091f1
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x14091e3
cmp al, 0xe8
je 0x14091db
cmp al, 0xe9
jne 0x14091f1
mov eax, dword [ecx + 1]
add ecx, 5
add ecx, eax
inc edx
mov dword [0x15bd548], ecx
cmp edx, 1
jb 0x14091a0
jmp 0x14091f3
xor ecx, ecx
push 0
push 0
push 0x140a150
push 0x50
push ecx
call fcn.0140c7a0
add esp, 0x14
mov ecx, dword [ebp - 4]
cmp dword [0x15bcf84], 0
jne 0x1409227
push str.MH_LoadEngine:_Failed_to_locate_gClientUserMsgs
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movups xmm0, xmmword [0x1586a00]
mov al, byte [0x1586a28]
mov edx, dword [ebp - 0xc]
mov edi, edx
movups xmmword [ebp - 0x1b4], xmm0
mov byte [ebp - 0x18c], al
movups xmm0, xmmword [0x1586a10]
movups xmmword [ebp - 0x1a4], xmm0
movq xmm0, qword [0x1586a20]
movq qword [ebp - 0x194], xmm0
test edi, edi
je 0x14092e5
lea ebx, [ecx - 0x28]
add ebx, edx
cmp edi, ebx
jae 0x14092e5
mov esi, edi
lea eax, [ebp - 0x1b4]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0x1b4]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409298
cmp dl, byte [ecx + esi]
jne 0x14092dc
inc eax
cmp eax, 0x28
jb 0x1409284
mov edx, dword [ebp - 0xc]
test edi, edi
je 0x14092e5
mov ecx, dword [edi + 4]
cmp ecx, edx
jb 0x14092b5
mov eax, dword [ebp - 0x24]
add eax, edx
cmp ecx, eax
jb 0x14092c3
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jb 0x14092d4
add eax, dword [ebp - 0x20]
cmp ecx, eax
jae 0x14092d4
cmp dword [ecx], 0x5f637673
jne 0x14092d4
cmp dword [ecx + 4], 0x646162
je 0x1409303
mov ecx, dword [ebp - 4]
add edi, 0x28
jmp 0x1409263
inc edi
inc esi
cmp edi, ebx
jb 0x1409282
mov edx, dword [ebp - 0xc]
mov edi, dword [0x15bcf4c]
test edi, edi
jne 0x140930b
push str.MH_LoadEngine:_Failed_to_locate_cl_parsefuncs
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x15bcf4c], edi
jmp 0x14092eb
movups xmm0, xmmword [str.PROTECTED]
movups xmmword [ebp - 0x100], xmm0
test edx, edx
je 0x1409362
mov ebx, dword [ebp - 0x24]
mov edi, edx
add ebx, 0xfffffff1
add ebx, edx
cmp edx, ebx
jae 0x1409362
mov esi, edx
lea eax, [ebp - 0x100]
sub esi, eax
xor eax, eax
nop word [eax + eax]
lea ecx, [ebp - 0x100]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409358
cmp dl, byte [ecx + esi]
jne 0x1409455
inc eax
cmp eax, 0xf
jb 0x1409340
test edi, edi
jne 0x14093b8
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x1409438
mov ebx, dword [ebp - 0x20]
mov edi, eax
add ebx, 0xfffffff1
add ebx, eax
cmp eax, ebx
jae 0x1409438
mov esi, eax
lea eax, [ebp - 0x100]
sub esi, eax
nop dword [eax]
xor eax, eax
lea ecx, [ebp - 0x100]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x14093aa
cmp dl, byte [ecx + esi]
jne 0x1409464
inc eax
cmp eax, 0xf
jb 0x1409392
test edi, edi
je 0x1409438
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add ebx, 0xfffffff4
mov eax, dword [0x1586a74]
add ebx, ecx
movq xmm0, qword [str.hh]
mov dword [ebp - 0x8c], eax
mov al, byte [0x1586a78]
movq qword [ebp - 0x94], xmm0
mov dword [ebp - 0x93], edi
mov edi, ecx
mov byte [ebp - 0x88], al
cmp ecx, ebx
jae 0x1409438
mov esi, ecx
lea eax, [ebp - 0x94]
sub esi, eax
nop
xor eax, eax
lea ecx, [ebp - 0x94]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409416
cmp dl, byte [ecx + esi]
jne 0x1409470
inc eax
cmp eax, 0xc
jb 0x1409402
test edi, edi
je 0x1409438
push 0x140a1d0
push 0x500
push edi
call fcn.0140c350
add esp, 0xc
mov dword [0x15bcf68], eax
cmp dword [0x15bcf68], 0
jne 0x1409478
push str.MH_LoadEngine:_Failed_to_locate_Cvar_DirectSet
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1409335
jmp 0x1409362
inc edi
inc esi
cmp edi, ebx
jb 0x1409390
jmp 0x1409438
inc edi
inc esi
cmp edi, ebx
jb 0x1409400
jmp 0x1409438
mov eax, dword [0x15bbf3c]
push 0
push 0
push 0x140a250
push 0x150
push dword [eax + 0x1e4]
call fcn.0140c7a0
add esp, 0x14
cmp dword [0x15bbef4], 0
jne 0x1409646
movups xmm0, xmmword [str.Cvar_Set:_variable__s_not_found_n]
mov al, byte [0x1586acc]
mov byte [ebp - 0x168], al
mov eax, dword [ebp - 0xc]
mov byte [ebp - 0xd], 0
movups xmmword [ebp - 0x188], xmm0
movups xmm0, xmmword [0x1586abc]
movups xmmword [ebp - 0x178], xmm0
test eax, eax
je 0x1409514
mov ebx, dword [ebp - 0x24]
mov edi, eax
add ebx, 0xffffffe0
add ebx, eax
cmp eax, ebx
jae 0x1409514
mov esi, eax
lea eax, [ebp - 0x188]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0x188]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x140950a
cmp dl, byte [esi + ecx]
jne 0x1409603
inc eax
cmp eax, 0x20
jb 0x14094f2
test edi, edi
jne 0x1409568
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x140961c
mov ebx, dword [ebp - 0x20]
mov edi, eax
add ebx, 0xffffffe0
add ebx, eax
cmp eax, ebx
jae 0x140961c
mov esi, eax
lea eax, [ebp - 0x188]
sub esi, eax
nop dword [eax + eax]
xor eax, eax
lea ecx, [ebp - 0x188]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x140955a
cmp dl, byte [esi + ecx]
jne 0x1409612
inc eax
cmp eax, 0x20
jb 0x1409542
test edi, edi
je 0x140961c
mov eax, dword [0x1586ad8]
movq xmm0, qword [0x1586ad0]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xbc], eax
mov ax, word [0x1586adc]
movq qword [ebp - 0xc4], xmm0
mov dword [ebp - 0xc3], edi
mov edi, ecx
mov word [ebp - 0xb8], ax
nop dword [eax + eax]
test edi, edi
je 0x1409636
mov ebx, dword [ebp - 4]
add ebx, 0xfffffff3
add ebx, ecx
cmp edi, ebx
jae 0x1409636
mov esi, edi
lea eax, [ebp - 0xc4]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0xc4]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x14095d8
cmp dl, byte [esi + ecx]
jne 0x1409630
inc eax
cmp eax, 0xd
jb 0x14095c4
test edi, edi
je 0x1409636
lea eax, [ebp - 0xd]
add edi, 0xd
push eax
push 0
push 0x140a2d0
push 0x80
push edi
call fcn.0140c7a0
mov ecx, dword [ebp - 8]
add esp, 0x14
jmp 0x14095a0
inc edi
inc esi
cmp edi, ebx
jb 0x14094f0
jmp 0x1409514
inc edi
inc esi
cmp edi, ebx
jb 0x1409540
push str.MH_LoadEngine:_Failed_to_locate_call_inside_Cvar_Set
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x14095c2
cmp byte [ebp - 0xd], 0
je 0x140961c
mov dword [0x15bbef4], 0x15bcf88
mov eax, dword [0x15bcf70]
cmp eax, 2
je 0x140971f
cmp eax, 1
je 0x140971f
cmp eax, 4
je 0x140971f
cmp dword [0x15bcf58], 0
je 0x1409a3b
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add ebx, 0xfffffff4
mov eax, dword [0x1586b60]
add ebx, ecx
movq xmm0, qword [0x1586b58]
mov edi, ecx
mov dword [ebp - 0xe8], eax
mov al, byte [0x1586b64]
movq qword [ebp - 0xf0], xmm0
mov byte [ebp - 0xe4], al
cmp ecx, ebx
jae 0x1409825
mov esi, ecx
lea eax, [ebp - 0xf0]
sub esi, eax
nop dword [eax + eax]
xor eax, eax
lea ecx, [ebp - 0xf0]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x14096da
cmp dl, byte [ecx + esi]
jne 0x1409818
inc eax
cmp eax, 0xc
jb 0x14096c2
test edi, edi
je 0x1409822
lea ecx, [edi + 5]
test ecx, ecx
jne 0x14096f8
mov ecx, dword [0x15bd548]
add ecx, 5
mov dword [0x15bd548], ecx
xor edx, edx
mov al, byte [ecx]
cmp al, 0xff
jne 0x14098e0
mov al, byte [ecx + 1]
cmp al, 0x15
jne 0x14098d1
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x14098f4
mov eax, dword [0x1586b18]
mov ecx, dword [ebp - 8]
mov ebx, ecx
mov dword [ebp - 0x3c], eax
movzx eax, word [0x1586b1c]
mov word [ebp - 0x38], ax
mov eax, dword [0x1586b20]
mov dword [ebp - 0x34], eax
movzx eax, word [0x1586b24]
mov word [ebp - 0x30], ax
mov al, byte [0x1586b26]
mov byte [ebp - 0x2e], al
test ebx, ebx
je 0x14097d0
mov edi, dword [ebp - 4]
add edi, 0xfffffffb
add edi, ecx
cmp ebx, edi
jae 0x14097d0
mov esi, ebx
lea eax, [ebp - 0x3c]
sub esi, eax
nop dword [eax]
xor eax, eax
lea ecx, [ebp - 0x3c]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409783
cmp dl, byte [esi + ecx]
jne 0x14097ca
inc eax
cmp eax, 5
jb 0x1409772
test ebx, ebx
je 0x14097d0
lea edi, [ebx - 0x50]
test edi, edi
je 0x14097c2
lea eax, [edi + 0x4a]
mov dword [ebp - 0x14], eax
cmp edi, eax
jae 0x14097c2
mov esi, edi
lea eax, [ebp - 0x34]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0x34]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x14097b8
cmp dl, byte [ecx + esi]
jne 0x14097f1
inc eax
cmp eax, 6
jb 0x14097a7
test edi, edi
jne 0x1409803
mov ecx, dword [ebp - 8]
add ebx, 5
jmp 0x1409752
inc ebx
inc esi
cmp ebx, edi
jb 0x1409770
mov eax, dword [0x15bcf58]
test eax, eax
jne 0x1409673
push str.MH_LoadEngine:_Failed_to_locate_LoadBlobFile
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, dword [ebp - 0x14]
jb 0x14097a5
mov ecx, dword [ebp - 8]
add ebx, 5
jmp 0x1409752
push 0x300
push edi
call fcn.0140bc30
add esp, 8
mov dword [0x15bcf58], eax
jmp 0x14097d5
inc edi
inc esi
cmp edi, ebx
jb 0x14096c0
mov ecx, dword [ebp - 8]
mov eax, dword [str.5]
mov edi, ecx
mov ebx, dword [ebp - 4]
movups xmm0, xmmword [0x1586b68]
mov dword [ebp - 0x124], eax
add ebx, 0xffffffeb
mov ax, word [0x1586b7c]
add ebx, ecx
mov word [ebp - 0x120], ax
mov eax, dword [0x15bbf40]
mov dword [ebp - 0x123], eax
movups xmmword [ebp - 0x134], xmm0
cmp ecx, ebx
jae 0x1409916
mov esi, ecx
lea eax, [ebp - 0x134]
sub esi, eax
xor eax, eax
lea ecx, [ebp - 0x134]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x140988c
cmp dl, byte [ecx + esi]
jne 0x1409909
inc eax
cmp eax, 0x15
jb 0x1409874
test edi, edi
je 0x1409913
lea ecx, [edi + 5]
test ecx, ecx
jne 0x14098aa
mov ecx, dword [0x15bd548]
add ecx, 5
mov dword [0x15bd548], ecx
xor edx, edx
mov al, byte [ecx]
cmp al, 0xff
jne 0x14099bf
mov al, byte [ecx + 1]
cmp al, 0x15
jne 0x14099b4
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x14099cf
cmp al, 0x25
jne 0x1409a16
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x14098f4
cmp al, 0xe8
je 0x14098ec
cmp al, 0xe9
jne 0x1409a16
mov eax, dword [ecx + 1]
add ecx, 5
add ecx, eax
inc edx
mov dword [0x15bd548], ecx
cmp edx, 1
jb 0x1409700
jmp 0x1409a18
inc edi
inc esi
cmp edi, ebx
jb 0x1409872
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov edi, ecx
mov ax, word [0x1586b94]
add ebx, 0xffffffeb
movups xmm0, xmmword [str.h]
add ebx, ecx
mov word [ebp - 0x138], ax
mov eax, dword [0x15bbf40]
mov dword [ebp - 0x13c], eax
movups xmmword [ebp - 0x14c], xmm0
cmp ecx, ebx
jae 0x1409a1e
mov esi, ecx
lea eax, [ebp - 0x14c]
sub esi, eax
nop dword [eax + eax]
xor eax, eax
lea ecx, [ebp - 0x14c]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409976
cmp dl, byte [ecx + esi]
jne 0x14099e1
inc eax
cmp eax, 0x15
jb 0x1409962
test edi, edi
je 0x1409a1e
lea ecx, [edi + 5]
test ecx, ecx
jne 0x1409994
mov ecx, dword [0x15bd548]
add ecx, 5
mov dword [0x15bd548], ecx
xor edx, edx
nop dword [eax]
mov al, byte [ecx]
cmp al, 0xff
jne 0x14099f8
mov al, byte [ecx + 1]
cmp al, 0x15
jne 0x14099ed
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x1409a08
cmp al, 0x25
jne 0x1409a16
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x14099cf
cmp al, 0xe8
je 0x14099c7
cmp al, 0xe9
jne 0x1409a16
mov eax, dword [ecx + 1]
add ecx, 5
add ecx, eax
inc edx
mov dword [0x15bd548], ecx
cmp edx, 1
jb 0x14098b2
jmp 0x1409a18
inc edi
inc esi
cmp edi, ebx
jb 0x1409960
jmp 0x1409a1e
cmp al, 0x25
jne 0x1409a16
mov eax, dword [ecx + 2]
mov ecx, dword [eax]
jmp 0x1409a08
cmp al, 0xe8
je 0x1409a00
cmp al, 0xe9
jne 0x1409a16
mov eax, dword [ecx + 1]
add ecx, 5
add ecx, eax
inc edx
mov dword [0x15bd548], ecx
cmp edx, 1
jb 0x14099a0
jmp 0x1409a18
xor ecx, ecx
mov dword [0x15bbee4], ecx
cmp dword [0x15bbee4], 0
jne 0x1409a3b
push str.MH_LoadEngine:_Failed_to_locate_FreeBlob
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x15bcf70], 3
movq xmm0, qword [0x1586934]
mov eax, dword [0x158693c]
movq qword [ebp - 0xd4], xmm0
movups xmm0, xmmword [0x1586bc4]
mov dword [ebp - 0xcc], eax
movzx eax, word [0x1586940]
movups xmmword [ebp - 0x164], xmm0
mov word [ebp - 0xc8], ax
movups xmm0, xmmword [str.Couldnt_get_client_library_studio_model_rendering]
mov eax, dword [0x1586bd4]
mov dword [ebp - 0x154], eax
movzx eax, word [0x1586bd8]
movups xmmword [ebp - 0x1e8], xmm0
mov word [ebp - 0x150], ax
movups xmm0, xmmword [0x1586bec]
movzx eax, word [0x1586c0c]
mov word [ebp - 0x1b8], ax
mov al, byte [0x1586c0e]
movups xmmword [ebp - 0x1d8], xmm0
mov byte [ebp - 0x1b6], al
movups xmm0, xmmword [0x1586bfc]
movups xmmword [ebp - 0x1c8], xmm0
movups xmm0, xmmword [str.Couldnt_get_client_.dll_studio_model_rendering]
movups xmmword [ebp - 0x218], xmm0
movups xmm0, xmmword [0x1586c20]
movups xmmword [ebp - 0x208], xmm0
movups xmm0, xmmword [0x1586c30]
movups xmmword [ebp - 0x1f8], xmm0
jne 0x1409b0e
lea eax, [ebp - 0x1e8]
mov esi, 0x32
jmp 0x1409b19
lea eax, [ebp - 0x218]
mov esi, 0x2f
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
test edx, edx
je 0x1409b51
mov ebx, edx
sub ebx, esi
add ebx, dword [ebp - 0x24]
cmp edx, ebx
jae 0x1409b51
mov edi, edx
sub edi, eax
xor ecx, ecx
mov dl, byte [eax]
cmp dl, 0x2a
je 0x1409b44
cmp dl, byte [edi + eax]
jne 0x1409c08
inc ecx
inc eax
cmp ecx, esi
jb 0x1409b34
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x1409ba7
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x1409c8a
mov edi, ecx
mov dword [ebp - 0xc], ecx
sub edi, esi
add edi, dword [ebp - 0x20]
cmp ecx, edi
jae 0x1409c8a
mov ebx, dword [ebp - 0x14]
sub ecx, ebx
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
mov eax, ebx
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, 0x2a
je 0x1409b96
mov ebx, dword [ebp - 0x1c]
cmp dl, byte [ebx + eax]
mov ebx, dword [ebp - 0x14]
jne 0x1409c20
inc ecx
inc eax
cmp ecx, esi
jb 0x1409b80
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x1409c8a
mov dword [ebp - 0xd3], eax
nop dword [eax]
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add ebx, 0xfffffff3
add ebx, ecx
mov edi, ecx
cmp ecx, ebx
jae 0x1409c8a
mov esi, ecx
lea eax, [ebp - 0xd4]
sub esi, eax
nop
xor eax, eax
lea ecx, [ebp - 0xd4]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409be6
cmp dl, byte [ecx + esi]
jne 0x1409c34
inc eax
cmp eax, 0xd
jb 0x1409bd2
test edi, edi
je 0x1409c8a
add edi, 0xffffffb0
jne 0x1409c3c
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add ebx, 0xfffffff3
mov edi, ecx
add ebx, ecx
jmp 0x1409bc5
mov edx, dword [ebp - 0xc]
inc edi
mov eax, dword [ebp - 0x14]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, ebx
jb 0x1409b32
jmp 0x1409b51
mov edx, dword [ebp - 0xc]
inc dword [ebp - 0x1c]
inc edx
mov dword [ebp - 0xc], edx
cmp edx, edi
jb 0x1409b76
jmp 0x1409c8a
inc edi
inc esi
cmp edi, ebx
jb 0x1409bd0
jmp 0x1409c8a
lea ebx, [edi + 0x3b]
cmp edi, ebx
jae 0x1409cad
mov esi, edi
lea eax, [ebp - 0x164]
sub esi, eax
nop dword [eax]
xor eax, eax
lea ecx, [ebp - 0x164]
add ecx, eax
mov dl, byte [ecx]
cmp dl, 0x2a
je 0x1409c66
cmp dl, byte [ecx + esi]
jne 0x1409ca7
inc eax
cmp eax, 0x15
jb 0x1409c52
test edi, edi
je 0x1409bb0
mov eax, dword [edi + 5]
mov dword [0x15bbed8], eax
mov eax, dword [edi + 0xa]
mov dword [0x15bcf48], edi
mov dword [0x15bbee8], eax
cmp dword [0x15bcf48], 0
jne 0x1409cbf
push str.MH_LoadEngine:_Failed_to_locate_ClientDLL_CheckStudioInterface
call fcn.01405ce0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1409c50
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add ebx, 0xfffffff3
mov edi, ecx
add ebx, ecx
jmp 0x1409bc5
mov esi, dword [0x15bbf44]
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [ebp - 0x14], 0
mov eax, dword [esi]
mov dword [0x15bbefc], eax
lea eax, [ebp - 0x14]
push eax
push 0x40
push 4
push esi
mov dword [0x15bbf20], 0x1408050
call edi
test eax, eax
je 0x1409d04
lea eax, [ebp - 0x14]
mov dword [esi], 0x15bbf20
push eax
push dword [ebp - 0x14]
push 4
push esi
call edi
mov ax, word [0x1586c94]
mov esi, dword [0x15bcf48]
movups xmm0, xmmword [0x1586c80]
mov ebx, dword [0x1586c90]
mov word [ebp - 0x104], ax
mov eax, 0x1408010
sub eax, esi
mov dword [ebp - 0x20], 0
sub eax, 7
movups xmmword [ebp - 0x118], xmm0
mov dword [ebp - 0x115], eax
lea eax, [ebp - 0x20]
push eax
push 0x40
push 0x15
push esi
call edi
test eax, eax
je 0x1409d73
movups xmm0, xmmword [ebp - 0x118]
mov al, byte [ebp - 0x104]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], ebx
mov byte [esi + 0x14], al
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x20]
push 0x15
push esi
call edi
mov eax, dword [0x15bcf58]
test eax, eax
je 0x1409d8c
push 0
push 0x1405d60
push eax
call fcn.0140a5d0
add esp, 0xc
mov eax, dword [0x15bbee4]
test eax, eax
je 0x1409da5
push 0
push 0x1405d70
push eax
call fcn.0140a5d0
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
call fcn.01406980
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
call fcn.014070a0
mov esi, dword [0x15bcf5c]
mov byte [0x15bbee0], 1
test esi, esi
je 0x1409e02
nop dword [eax]
mov eax, dword [esi + 0x3c]
sub eax, 2
je 0x1409df3
sub eax, 1
je 0x1409de2
sub eax, 1
jne 0x1409dfb
mov ecx, dword [esi + 0x38]
mov eax, dword [0x15bcf64]
mov edx, dword [ecx]
push dword [eax]
call dword [edx + 0xc]
jmp 0x1409dfb
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x1409dd0
push 8
push dword [0x15bbef8]
xor edx, edx
xor ecx, ecx
push dword [0x15bcf60]
call fcn.01403880
add esp, 0xc
call fcn.01407e30
push 0x1585d90
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
je 0x1408cc9
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.LdrRegisterDllNotification
push esi
call edi
test eax, eax
je 0x1409e60
push 0x15bcfcc
push 0
push 0x1403b30
push 0
call eax
test eax, eax
jns 0x1408cc9
push str.LdrLoadDll
push esi
call edi
mov dword [0x15bbec4], eax
test eax, eax
je 0x1408cc9
call fcn.01401610
sub esp, 0xc
mov edx, 0x1403ab0
mov ecx, 0x15bbec4
call fcn.01401950
call fcn.014016a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret