Function at 0x1405b10
Capabilities:
Access pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x159e084]
sub esp, 0x3c
mov dword [0x159e0a4], 0
mov dword [0x159e068], 0
mov dword [0x159e0b8], 0
mov dword [0x159e090], 0
mov dword [0x159e0b0], 0
mov dword [0x159e05c], 0
mov dword [0x159e0b4], 0
mov dword [0x159e064], 0
mov dword [0x159e088], 0
mov dword [0x159e08c], 0
mov dword [0x159e0a0], 0
push ebx
push esi
push edi
mov edi, ecx
test eax, eax
jne 0x1405ba4
push 0x218
call fcn.0141e475
add esp, 4
mov dword [0x159e084], eax
push 0x218
push 0
push eax
call fcn.01420890
mov eax, dword [0x159e080]
add esp, 0xc
test eax, eax
jne 0x1405bcf
push 0xac
call fcn.0141e475
add esp, 4
mov dword [0x159e080], eax
push 0xac
push 0
push eax
call fcn.01420890
mov eax, dword [0x159e03c]
add esp, 0xc
mov dword [0x159e09c], 0
mov dword [0x159e06c], 0
mov dword [0x159e094], 0
mov dword [0x159e070], 0
mov byte [0x159e060], 0
mov dword [0x159e074], 0x1575f38
mov dword [0x159e07c], 0x1576344
mov dword [0x159e078], eax
test edi, edi
je 0x1405c4f
push 0x1c
lea eax, [ebp - 0x38]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
mov ecx, dword [edi + 0x3c]
neg eax
sbb esi, esi
and esi, dword [ebp - 0x34]
xor eax, eax
mov ecx, dword [ecx + edi + 0x50]
jmp 0x1405c60
mov eax, 1
xor edi, edi
mov ecx, 0x1000000
mov esi, 0x1d00000
push esi
mov dword [0x159e09c], esi
mov dword [0x159e06c], ecx
mov dword [0x159e0ac], edi
mov dword [0x159e0a8], eax
call dword [sym.imp.ntdll.dll_RtlImageNtHeader]
test eax, eax
je 0x1405cdc
movzx ebx, word [eax + 0x14]
xor ecx, ecx
movzx edi, word [eax + 6]
add ebx, eax
xor eax, eax
cmp ax, di
jae 0x1405cdc
nop word [eax + eax]
movzx edx, cx
lea eax, [edx + edx*4]
cmp dword [ebx + eax*8 + 0x18], 0x7865742e
jne 0x1405cb7
cmp dword [ebx + eax*8 + 0x1c], 0x74
je 0x1405cbf
inc ecx
cmp cx, di
jb 0x1405ca0
jmp 0x1405cdc
lea eax, [edx + edx*4]
mov edx, dword [ebx + eax*8 + 0x28]
mov ecx, dword [ebx + eax*8 + 0x20]
mov eax, dword [ebx + eax*8 + 0x24]
add eax, esi
cmp edx, ecx
mov dword [ebp - 4], eax
cmovbe edx, ecx
test eax, eax
jne 0x1405cea
mov eax, dword [0x159e09c]
mov edx, dword [0x159e06c]
mov dword [ebp - 4], eax
lea ecx, [eax + edx]
mov edi, eax
lea ebx, [ecx - 0xe]
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], ebx
cmp eax, ebx
jae 0x1405d7f
mov esi, eax
sub esi, 0x156c67c
nop dword [eax + eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + 0x156c67c]
mov dl, byte [eax + esi + 0x156c67c]
cmp cl, 0x2a
je 0x1405d36
cmp cl, dl
jne 0x1405d79
inc eax
cmp eax, 0xe
jb 0x1405d20
test edi, edi
je 0x1405d7f
mov eax, dword [edi + 1]
mov esi, dword [edi + 0xe]
add eax, 5
add eax, edi
cmp dword [0x159e0a8], 1
mov dword [0x159e0b0], eax
je 0x1405db2
push 8
push str.Svengine
push esi
call fcn.0142a4d0
add esp, 0xc
test eax, eax
jne 0x1405d93
mov dword [0x159e0a8], 3
jmp 0x1405db2
inc edi
inc esi
cmp edi, ebx
jb 0x1405d10
push str.MH_LoadEngine:_Failed_to_locate_buildnumber
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 9
push str.Half_Life
push esi
call fcn.0142a4d0
add esp, 0xc
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, 2
mov dword [0x159e0a8], eax
mov ebx, dword [0x159e06c]
mov edi, dword [0x159e09c]
add ebx, 0xfffffff5
add ebx, edi
cmp edi, ebx
jae 0x1405e89
mov esi, edi
sub esi, str.ScreenShake
nop dword [eax]
nop word [eax + eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + str.ScreenShake]
mov dl, byte [eax + esi + str.ScreenShake]
cmp cl, 0x2a
je 0x1405e0a
cmp cl, dl
jne 0x1405ea6
inc eax
cmp eax, 0xb
jb 0x1405df0
test edi, edi
je 0x1405e89
mov ebx, dword [ebp - 8]
movq xmm0, qword [str.hh]
add ebx, 0xfffffff5
mov eax, dword [0x156c6e4]
mov esi, dword [ebp - 4]
movq qword [ebp - 0x14], xmm0
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xe], edi
mov edi, esi
cmp esi, ebx
jae 0x1405e89
lea eax, [ebp - 0x14]
sub esi, eax
xor ecx, ecx
lea eax, [ebp - 0x14]
add eax, ecx
mov dl, byte [esi + eax]
mov al, byte [eax]
cmp al, 0x2a
je 0x1405e54
cmp al, dl
jne 0x1405eb2
inc ecx
cmp ecx, 0xb
jb 0x1405e42
test edi, edi
je 0x1405e89
push 0x200
push edi
call fcn.01407800
add esp, 8
test eax, eax
je 0x1405e89
push 0
push 0
push 0x1406600
push 0x30
push edi
mov dword [0x159e0b4], eax
call fcn.01408160
add esp, 0x14
cmp dword [0x159e0b4], 0
jne 0x1405eba
push str.MH_LoadEngine:_Failed_to_locate_ClientDLL_Init
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1405de0
jmp 0x1405e89
inc edi
inc esi
cmp edi, ebx
jb 0x1405e40
jmp 0x1405e89
cmp dword [0x159e0a0], 0
jne 0x1405ed7
push str.MH_LoadEngine:_Failed_to_locate_ppEngfuncs
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x159e08c], 0
jne 0x1405ef4
push str.MH_LoadEngine:_Failed_to_locate_ppExportFuncs
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [0x159e06c]
mov edi, dword [0x159e09c]
add ebx, 0xfffffff3
add ebx, edi
cmp edi, ebx
jae 0x140601b
mov esi, edi
sub esi, str.cl_righthand
nop word [eax + eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + str.cl_righthand]
mov dl, byte [esi + eax + str.cl_righthand]
cmp cl, 0x2a
je 0x1405f4a
cmp cl, dl
jne 0x1406038
inc eax
cmp eax, 0xd
jb 0x1405f30
test edi, edi
je 0x140601b
mov eax, dword [0x156c78c]
mov ebx, dword [ebp - 8]
movq xmm0, qword [0x156c784]
add ebx, 0xfffffff4
mov dword [ebp - 0x10], eax
mov al, byte [0x156c790]
mov byte [ebp - 0xc], al
mov eax, dword [ebp - 4]
mov esi, eax
movq qword [ebp - 0x18], xmm0
mov dword [ebp - 0x17], edi
cmp eax, ebx
jae 0x140601b
mov edi, eax
lea eax, [ebp - 0x18]
sub edi, eax
xor ecx, ecx
lea eax, [ebp - 0x18]
add eax, ecx
mov dl, byte [edi + eax]
mov al, byte [eax]
cmp al, 0x2a
je 0x1405faa
cmp al, dl
jne 0x1406044
inc ecx
cmp ecx, 0xc
jb 0x1405f94
test esi, esi
je 0x140601b
lea ebx, [esi - 0x89]
cmp esi, ebx
jbe 0x140601b
mov edi, esi
sub edi, 0x156c794
nop word [eax + eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + 0x156c794]
mov dl, byte [edi + eax + 0x156c794]
cmp cl, 0x2a
je 0x1405ff6
cmp cl, dl
jne 0x1406050
inc eax
cmp eax, 9
jb 0x1405fe0
test esi, esi
je 0x140601b
push dword [esi + 1]
lea eax, [esi + 9]
push 0
push 0x1406660
push 0x80
push eax
call fcn.01408160
add esp, 0x14
cmp dword [0x159e088], 0
jne 0x140605c
push str.MH_LoadEngine:_Failed_to_locate_g_hClientModule
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1405f20
jmp 0x140601b
inc esi
inc edi
cmp esi, ebx
jb 0x1405f92
jmp 0x140601b
dec esi
dec edi
cmp esi, ebx
ja 0x1405fd0
jmp 0x140601b
mov ebx, dword [0x159e06c]
mov edi, dword [0x159e09c]
add ebx, 0xfffffff1
add ebx, edi
cmp edi, ebx
jae 0x1406164
mov esi, edi
sub esi, str.VClientVGUI001
nop dword [eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + str.VClientVGUI001]
mov dl, byte [esi + eax + str.VClientVGUI001]
cmp cl, 0x2a
je 0x14060aa
cmp cl, dl
jne 0x140615a
inc eax
cmp eax, 0xf
jb 0x1406090
test edi, edi
je 0x1406164
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
add ebx, 0xfffffff9
mov dword [ebp - 0x10], 0x2a68006a
mov dword [ebp - 0xc], 0x2a2a2a
mov dword [ebp - 0xd], edi
mov edi, eax
cmp eax, ebx
jae 0x1406164
mov esi, eax
lea eax, [ebp - 0x10]
sub esi, eax
xor ecx, ecx
lea eax, [ebp - 0x10]
add eax, ecx
mov dl, byte [esi + eax]
mov al, byte [eax]
cmp al, 0x2a
je 0x14060fb
cmp al, dl
jne 0x1406185
inc ecx
cmp ecx, 7
jb 0x14060e5
test edi, edi
je 0x1406164
lea eax, [edi - 0x109]
mov ebx, edi
mov dword [ebp - 0xc], eax
cmp edi, eax
jbe 0x1406198
mov esi, edi
sub esi, 0x156c7e0
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + 0x156c7e0]
mov dl, byte [esi + eax + 0x156c7e0]
cmp cl, 0x2a
je 0x1406146
cmp cl, dl
jne 0x1406191
inc eax
cmp eax, 9
jb 0x1406130
test ebx, ebx
je 0x1406198
mov eax, dword [ebx + 1]
mov dword [0x159e05c], eax
jmp 0x1406169
inc edi
inc esi
cmp edi, ebx
jb 0x1406080
mov eax, dword [0x159e05c]
test eax, eax
jne 0x14061f8
push str.MH_LoadEngine:_Failed_to_locate_ClientFactory
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x14060e3
jmp 0x1406164
dec ebx
dec esi
cmp ebx, dword [ebp - 0xc]
ja 0x1406120
mov ebx, dword [ebp - 0xc]
cmp edi, ebx
jbe 0x1406164
mov esi, edi
sub esi, 0x156c7ec
nop word [eax + eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + 0x156c7ec]
mov dl, byte [esi + eax + 0x156c7ec]
cmp cl, 0x2a
je 0x14061d6
cmp cl, dl
jne 0x14061ed
inc eax
cmp eax, 9
jb 0x14061c0
test edi, edi
je 0x1406164
mov eax, dword [edi + 2]
mov dword [0x159e05c], eax
jmp 0x1406169
dec edi
dec esi
cmp edi, ebx
ja 0x14061b0
jmp 0x1406164
mov eax, dword [0x159e0a0]
mov ecx, 0x86
mov edi, dword [0x159e084]
mov ebx, dword [0x159e06c]
add ebx, 0xfffffff5
mov esi, dword [eax]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x159e084]
mov edi, dword [0x159e09c]
add ebx, edi
mov eax, dword [eax + 0x198]
mov dword [0x159e0a4], eax
cmp edi, ebx
jae 0x14062d6
mov esi, edi
sub esi, str._fullscreen
nop dword [eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + str._fullscreen]
mov dl, byte [esi + eax + str._fullscreen]
cmp cl, 0x2a
je 0x140626a
cmp cl, dl
jne 0x14062f3
inc eax
cmp eax, 0xb
jb 0x1406250
test edi, edi
je 0x14062d6
movups xmm0, xmmword [str.h]
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
add ebx, 0xfffffff1
movups xmmword [ebp - 0x18], xmm0
mov dword [ebp - 0x17], edi
mov edi, eax
cmp eax, ebx
jae 0x14062d6
mov esi, eax
lea eax, [ebp - 0x18]
sub esi, eax
xor ecx, ecx
nop word [eax + eax]
lea eax, [ebp - 0x18]
add eax, ecx
mov dl, byte [esi + eax]
mov al, byte [eax]
cmp al, 0x2a
je 0x14062b2
cmp al, dl
jne 0x14062ff
inc ecx
cmp ecx, 0xf
jb 0x14062a0
test edi, edi
je 0x14062d6
push 0
push 0
push 0x14066f0
lea eax, [edi + 0xf]
push 0x400
push eax
call fcn.01408160
add esp, 0x14
cmp dword [0x159e090], 0
jne 0x1406307
push str.MH_LoadEngine:_Failed_to_locate_g_pVideoMode
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc edi
inc esi
cmp edi, ebx
jb 0x1406240
jmp 0x14062d6
inc edi
inc esi
cmp edi, ebx
jb 0x1406298
jmp 0x14062d6
mov ebx, dword [0x159e06c]
mov edi, dword [0x159e09c]
add ebx, 0xfffffff8
add ebx, edi
cmp edi, ebx
jae 0x140642e
mov esi, edi
sub esi, str.HudText
nop dword [eax + eax]
xor eax, eax
nop dword [eax]
nop word [eax + eax]
mov cl, byte [eax + str.HudText]
mov dl, byte [esi + eax + str.HudText]
cmp cl, 0x2a
je 0x140635a
cmp cl, dl
jne 0x14063e8
inc eax
cmp eax, 8
jb 0x1406340
test edi, edi
je 0x140642e
mov eax, dword [0x156c87c]
movq xmm0, qword [str.Ph]
mov ebx, dword [ebp - 4]
mov esi, ebx
mov dword [ebp - 0x10], eax
mov ax, word [0x156c880]
mov word [ebp - 0xc], ax
mov al, byte [0x156c882]
mov byte [ebp - 0xa], al
lea eax, [ebp - 0x18]
movq qword [ebp - 0x18], xmm0
sub esi, eax
mov dword [ebp - 0x16], edi
mov edi, dword [ebp - 0x1c]
nop
xor ecx, ecx
lea eax, [ebp - 0x18]
add eax, ecx
mov dl, byte [esi + eax]
mov al, byte [eax]
cmp al, 0x2a
je 0x14063b4
cmp al, dl
jne 0x14063f4
inc ecx
cmp ecx, 0xe
jb 0x14063a2
test ebx, ebx
je 0x140642e
lea ecx, [ebx + 6]
test ecx, ecx
jne 0x14063ce
mov ecx, dword [0x159e668]
add ecx, 5
mov dword [0x159e668], ecx
xor eax, eax
mov dl, byte [ecx]
cmp dl, 0xff
jne 0x14063fc
cmp byte [ecx + 1], 0x15
jne 0x1406401
mov eax, dword [ecx + 2]
jmp 0x140641a
inc edi
inc esi
cmp edi, ebx
jb 0x1406330
jmp 0x140642e
inc ebx
inc esi
cmp ebx, edi
jb 0x14063a0
jmp 0x140642e
cmp dl, 0xe8
je 0x1406412
inc ecx
inc eax
mov dword [0x159e668], ecx
cmp eax, 1
jb 0x14063d6
xor eax, eax
jmp 0x140641a
mov eax, dword [ecx + 1]
add eax, 5
add eax, ecx
push 0
push 0
push 0x1406780
push 0x50
push eax
call fcn.01408160
add esp, 0x14
cmp dword [0x159e0b8], 0
jne 0x140644b
push str.MH_LoadEngine:_Failed_to_locate_gClientUserMsgs
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x159e0a8]
cmp eax, 2
je 0x140645a
cmp eax, 1
jne 0x1406498
mov eax, dword [0x159e084]
push 0
push 0
push 0x1406800
push 0x150
push dword [eax + 0x1e4]
call fcn.01408160
add esp, 0x14
cmp dword [0x159e068], 0
jne 0x1406498
push str.MH_LoadEngine:_Failed_to_locate_cvar_callbacks
call fcn.01404a50
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [0x159e0b4]
push 0x34
call fcn.0141e475
mov edi, eax
add esp, 4
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
cmp byte [0x159e061], 0
mov dword [edi], 1
mov eax, dword [0x159e094]
mov dword [edi + 0x2c], eax
mov dword [0x159e094], edi
mov dword [edi + 8], esi
mov dword [edi + 0xc], 0x1405a90
je 0x1406530
mov dword [edi + 0x10], 0x159e064
xor eax, eax
jmp 0x140655e
call fcn.014020b0
sub esp, 0xc
lea ecx, [edi + 8]
mov edx, 0x1405a90
call fcn.01402440
call fcn.01402140
mov eax, dword [edi + 8]
mov dword [edi + 0x10], 0x159e064
mov dword [0x159e064], eax
mov eax, 1
mov dword [edi + 4], eax
call fcn.014051e0
mov esi, dword [0x159e098]
mov byte [0x159e061], 1
test esi, esi
je 0x14065a9
mov eax, dword [esi + 0x3c]
sub eax, 2
je 0x140659a
sub eax, 1
je 0x1406589
sub eax, 1
jne 0x14065a2
mov ecx, dword [esi + 0x38]
mov eax, dword [0x159e0a0]
mov edx, dword [ecx]
push dword [eax]
call dword [edx + 0xc]
jmp 0x14065a2
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x1406577
mov edi, dword [0x159e094]
mov byte [0x159e061], 0
test edi, edi
je 0x1405d8c
nop
cmp dword [edi], 1
jne 0x14065f2
cmp dword [edi + 4], 0
jne 0x14065f2
call fcn.014020b0
mov edx, dword [edi + 0xc]
lea ecx, [edi + 8]
sub esp, 0xc
call fcn.01402440
call fcn.01402140
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 8]
mov dword [ecx], eax
mov dword [edi + 4], 1
mov edi, dword [edi + 0x2c]
test edi, edi
jne 0x14065c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret