Function at 0x100042c0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x84
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100209f0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x18]
add edx, edx
and edx, 0x3115a6c2
mov eax, dword [ecx + edx*4 + 4]
cmp eax, dword [esi + 4]
je 0x10004c44
cmp dword [eax + 8], 0xa9bde4ea
je 0x10004334
mov ecx, dword [ecx + edx*4]
nop word [eax + eax]
cmp eax, ecx
je 0x10004c44
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0xa9bde4ea
jne 0x10004320
mov eax, dword [eax + 0xc]
movzx ecx, word [eax]
cmp ecx, 0x5a4d
jne 0x10004c55
mov edx, dword [eax + 0x3c]
cmp dword [eax + edx], 0x4550
jne 0x10004c5a
mov ecx, dword [eax + edx + 0x2c]
add ecx, eax
mov esi, dword [eax + edx + 0x1c]
mov ax, 0xa101
mov word [ebp - 0x34], ax
mov ax, 3
mov word [ebp - 0x24], ax
mov ax, 0x5001
mov word [ebp - 0x30], ax
mov ax, 0x8b01
mov word [ebp - 0x2e], ax
mov dx, 0x801
mov di, 0xff01
mov bx, 0x5101
mov ax, 0xc01
mov word [ebp - 0x2c], ax
mov dword [ebp - 0x20], ecx
lea eax, [esi + ecx]
test esi, esi
je 0x100048f5
mov word [ebp - 0x26], bx
mov word [ebp - 0x28], di
mov word [ebp - 0x2a], dx
xor edi, edi
mov edx, eax
jmp 0x100043d1
mov eax, dword [ebp - 0x20]
add eax, edi
inc eax
inc edi
cmp eax, edx
mov eax, edx
je 0x10004651
movzx ebx, word [ebp - 0x34]
movzx ecx, bl
mov dword [ebp - 0x3c], ecx
test bl, bl
je 0x100043c0
cmp dword [ebp - 0x3c], 3
je 0x100043fc
movzx ecx, word [ebp - 0x34]
cmp cl, 2
sete bl
mov esi, dword [ebp - 0x20]
cmp byte [esi + edi], ch
sete bh
cmp bl, bh
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea ebx, [ecx + edi]
inc ebx
cmp ebx, eax
je 0x10004651
cmp byte [ebp - 0x24], 0
je 0x100043c0
movzx esi, byte [ebp - 0x24]
cmp esi, 3
je 0x1000442f
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [ebx], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea ebx, [ecx + edi]
add ebx, 2
cmp ebx, eax
je 0x10004651
cmp byte [ebp - 0x24], 0
je 0x100043c0
cmp esi, 3
je 0x10004468
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [ebx], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea ebx, [ecx + edi]
add ebx, 3
cmp ebx, eax
je 0x10004651
cmp byte [ebp - 0x24], 0
je 0x100043c0
cmp esi, 3
je 0x100044a1
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [ebx], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea ebx, [ecx + edi]
add ebx, 4
cmp ebx, eax
je 0x10004651
cmp byte [ebp - 0x24], 0
je 0x100043c0
cmp esi, 3
je 0x100044da
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [ebx], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 5
cmp esi, eax
je 0x10004651
cmp byte [ebp - 0x30], 0
je 0x100043c0
movzx eax, byte [ebp - 0x30]
cmp eax, 3
mov eax, edx
je 0x10004519
movzx ecx, word [ebp - 0x30]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 6
cmp esi, eax
je 0x10004651
cmp byte [ebp - 0x2e], 0
je 0x100043c0
movzx eax, byte [ebp - 0x2e]
cmp eax, 3
mov eax, edx
je 0x10004558
movzx ecx, word [ebp - 0x2e]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 7
cmp esi, eax
je 0x10004651
cmp byte [ebp - 0x2a], 0
je 0x100043c0
movzx eax, byte [ebp - 0x2a]
cmp eax, 3
mov eax, edx
je 0x10004597
movzx ecx, word [ebp - 0x2a]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 8
cmp esi, eax
je 0x10004651
cmp byte [ebp - 0x28], 0
je 0x100043c0
movzx eax, byte [ebp - 0x28]
cmp eax, 3
mov eax, edx
je 0x100045d6
movzx ecx, word [ebp - 0x28]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 9
cmp esi, eax
je 0x10004651
cmp byte [ebp - 0x26], 0
je 0x100043c0
movzx eax, byte [ebp - 0x26]
cmp eax, 3
mov eax, edx
je 0x10004611
movzx ecx, word [ebp - 0x26]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 0xa
cmp esi, eax
je 0x10004651
cmp byte [ebp - 0x2c], 0
je 0x100043c0
movzx eax, byte [ebp - 0x2c]
cmp eax, 3
mov eax, edx
je 0x1000464c
movzx ecx, word [ebp - 0x2c]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x100043c0
add edi, dword [ebp - 0x20]
jmp 0x10004653
mov edi, eax
mov esi, eax
mov eax, dword [edi + 1]
mov ebx, dword [eax]
cmp dword [ebp - 0x20], esi
mov eax, esi
je 0x100048fa
xor edi, edi
movzx ecx, byte [ebp - 0x24]
mov dword [ebp - 0x38], ecx
jmp 0x10004681
mov eax, dword [ebp - 0x20]
add eax, edi
inc eax
inc edi
cmp eax, edx
mov eax, edx
je 0x100048fa
cmp byte [ebp - 0x34], 0
je 0x10004670
cmp dword [ebp - 0x3c], 3
je 0x100046a6
movzx ecx, word [ebp - 0x34]
cmp cl, 2
sete al
mov esi, dword [ebp - 0x20]
cmp byte [esi + edi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
inc esi
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x24], 0
je 0x10004670
cmp dword [ebp - 0x38], 3
je 0x100046d6
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 2
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x24], 0
je 0x10004670
cmp dword [ebp - 0x38], 3
je 0x1000470c
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 3
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x24], 0
je 0x10004670
cmp dword [ebp - 0x38], 3
je 0x10004746
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 4
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x24], 0
je 0x10004670
cmp dword [ebp - 0x38], 3
je 0x10004780
movzx ecx, word [ebp - 0x24]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 5
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x30], 0
je 0x10004670
movzx eax, byte [ebp - 0x30]
cmp eax, 3
mov eax, edx
je 0x100047bf
movzx ecx, word [ebp - 0x30]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 6
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x2e], 0
je 0x10004670
movzx eax, byte [ebp - 0x2e]
cmp eax, 3
mov eax, edx
je 0x100047fe
movzx ecx, word [ebp - 0x2e]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 7
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x2a], 0
je 0x10004670
movzx eax, byte [ebp - 0x2a]
cmp eax, 3
mov eax, edx
je 0x1000483d
movzx ecx, word [ebp - 0x2a]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 8
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x28], 0
je 0x10004670
movzx eax, byte [ebp - 0x28]
cmp eax, 3
mov eax, edx
je 0x1000487c
movzx ecx, word [ebp - 0x28]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 9
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x26], 0
je 0x10004670
movzx eax, byte [ebp - 0x26]
cmp eax, 3
mov eax, edx
je 0x100048b7
movzx ecx, word [ebp - 0x26]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
mov eax, edx
je 0x10004670
mov ecx, dword [ebp - 0x20]
lea esi, [ecx + edi]
add esi, 0xa
cmp esi, eax
je 0x100048fa
cmp byte [ebp - 0x2c], 0
je 0x10004670
movzx eax, byte [ebp - 0x2c]
cmp eax, 3
je 0x100048ee
movzx ecx, word [ebp - 0x2c]
cmp cl, 2
sete al
cmp byte [esi], ch
sete ah
cmp al, ah
je 0x10004670
mov eax, dword [ebp - 0x20]
add eax, edi
jmp 0x100048fa
mov ecx, dword [eax + 1]
mov ebx, dword [ecx]
mov eax, dword [eax + 1]
mov eax, dword [eax]
mov dword [0x102700d0], eax
xorps xmm0, xmm0
movups xmmword [ebp - 0x50], xmm0
mov eax, dword [ebx]
lea ecx, [ebp - 0x50]
push ecx
push ebx
call dword [eax + 0x24]
mov dword [ebp - 0x10], 0xffffffff
test eax, eax
jne 0x10004c5f
movaps xmm0, xmmword [0x10141290]
movups xmmword [ebp - 0x6c], xmm0
lea eax, [ebp - 0x6c]
lea ecx, [ebp - 0x40]
push 0
push eax
push ecx
call sub.gdiplus.dll_GdiplusStartup
push 0
call fcn.100a8830
add esp, 4
push dword [ebp - 0x48]
call fcn.100d1010
add esp, 4
mov dword [ebp - 0x34], ebx
push ebx
call fcn.100d0db0
add esp, 4
call fcn.100a9c10
mov esi, eax
push 0x84
call fcn.100f13cd
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_obj2_struct_ImDrawList_.0
mov dword [ebp - 0x20], eax
mov ecx, eax
add ecx, 0xc
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x24], ecx
push esi
call fcn.1001fee0
mov eax, dword [0x1026fc9c]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0x38], ecx
mov esi, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x3c], ecx
test esi, esi
je 0x100049d0
lock dec dword [esi + 4]
jne 0x100049d0
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock dec dword [esi + 8]
jne 0x100049d0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 0x10], 0xffffffff
call fcn.100a9c10
mov esi, eax
push 0x84
call fcn.100f13cd
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_obj2_struct_ImDrawList_.0
mov dword [ebp - 0x20], eax
mov ecx, eax
add ecx, 0xc
mov dword [ebp - 0x10], 1
mov dword [ebp - 0x24], ecx
push esi
call fcn.1001fee0
mov eax, dword [0x1026fc9c]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0x40], ecx
mov esi, dword [eax + 0x44]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x44], ecx
test esi, esi
je 0x10004a48
lock dec dword [esi + 4]
jne 0x10004a48
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock dec dword [esi + 8]
jne 0x10004a48
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 0x10], 0xffffffff
call fcn.100a9c10
mov esi, eax
push 0x84
call fcn.100f13cd
add esp, 4
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov dword [eax], vtable.std::_Ref_count_obj2_struct_ImDrawList_.0
mov dword [ebp - 0x20], eax
mov ecx, eax
add ecx, 0xc
mov dword [ebp - 0x10], 2
mov dword [ebp - 0x24], ecx
push esi
call fcn.1001fee0
mov eax, dword [0x1026fc9c]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0x48], ecx
mov esi, dword [eax + 0x4c]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x4c], ecx
test esi, esi
mov ebx, dword [ebp - 0x34]
je 0x10004ac3
lock dec dword [esi + 4]
jne 0x10004ac3
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock dec dword [esi + 8]
jne 0x10004ac3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 0x10], 0xffffffff
push 0
call fcn.100bc550
add esp, 4
call fcn.100a54f0
mov dword [eax + 0x14], 0x43e10000
mov dword [eax + 0x18], 0x43af0000
call fcn.100a9bd0
mov esi, eax
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
call fcn.100a9bd0
mov edi, dword [eax + 0x90]
call fcn.100a9bd0
mov ecx, dword [eax + 0x90]
call fcn.100c9d70
mov ecx, edi
push eax
push 0
push 0x41600000
push str.c:WindowsFonts_verdana.ttf
call fcn.100c19d0
call fcn.100a9bd0
mov edi, dword [eax + 0x90]
call fcn.100a9bd0
mov ecx, dword [eax + 0x90]
call fcn.100c9d70
mov ecx, edi
push eax
push 0
push 0x41100000
push str.c:WindowsFonts_arial.ttf
call fcn.100c19d0
push 0
push dword [esi + 0x90]
call fcn.100d0410
add esp, 8
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x18]
add edx, edx
and edx, 0x683e8612
mov eax, dword [ecx + edx*4 + 4]
cmp eax, dword [esi + 4]
je 0x10004c44
cmp dword [eax + 8], 0xce6b421f
je 0x10004bb4
mov ecx, dword [ecx + edx*4]
nop word cs:[eax + eax]
cmp eax, ecx
je 0x10004c44
mov eax, dword [eax + 4]
cmp dword [eax + 8], 0xce6b421f
jne 0x10004ba0
mov eax, dword [eax + 0xc]
movzx ecx, word [eax]
cmp ecx, 0x5a4d
jne 0x10004c73
mov ecx, dword [eax + 0x3c]
cmp dword [eax + ecx], 0x4550
jne 0x10004c7f
push 0
push str.Valve001
call dword [sym.imp.USER32.dll_FindWindowA]
push 0x10073690
push 0xfffffffffffffffc
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [0x102700d4], eax
mov eax, dword [ebx]
push 0x102700d8
push 0x100737e0
push dword [eax + 0x40]
call fcn.100e7d48
test eax, eax
jne 0x10004c8b
mov eax, dword [ebx]
push 0x102700dc
push 0x10073830
push dword [eax + 0x44]
call fcn.100e7d48
test eax, eax
jne 0x10004c9a
push dword [ebp - 0x40]
call sub.gdiplus.dll_GdiplusShutdown
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov dword [ebp - 0x10], 0xffffffff
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
lea esi, [ebp - 0x50]
jmp 0x10004c76
lea esi, [ebp - 0x50]
jmp 0x10004c82
lea esi, [ebp - 0x90]
mov ecx, esi
push str.cant_get_creation_params.
call fcn.10004d20
jmp 0x10004cb0
lea esi, [ebp - 0x5c]
mov ecx, esi
push str.invalid_dos_hdr.
jmp 0x10004ca4
lea esi, [ebp - 0x5c]
mov ecx, esi
push str.invalid_nt_hdrs.
jmp 0x10004ca4
lea esi, [ebp - 0x84]
mov ecx, esi
push str.cant_hook_hooks::dx9_reset.
jmp 0x10004ca4
lea esi, [ebp - 0x78]
mov ecx, esi
push str.cant_hook_hooks::dx9_present.
call fcn.10004d20
mov dword [ebp - 0x10], 0xffffffff
push 0x1016dde8
push esi
call sub.VCRUNTIME140.dll__CxxThrowException
nop dword [eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
push dword [ebp - 0x20]
call fcn.100f14ab
add esp, 0x14
pop ebp
ret