Function at 0x403a50
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x11c
mov eax, dword [0x433040]
xor eax, esp
mov dword [esp + 0x118], eax
cmp dword [0x4cc820], 0
xorps xmm0, xmm0
push ebx
push esi
push edi
mov ebx, ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x94], 0
movlpd qword [esp + 0xe4], xmm0
je 0x403ac9
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.004107a0
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4cc888]
test eax, eax
jne 0x403ae8
lea edx, [eax + 1]
mov ecx, 0x84c05e40
call fcn.0040ddf0
mov dword [0x4cc888], eax
test eax, eax
je 0x403b27
mov ecx, dword [0x4cc884]
mov dword [esp + 0x90], 0xc3d2ff
test ecx, ecx
jne 0x403b33
push ecx
lea ecx, [esp + 0x94]
mov edx, 0x100000
push 3
push ecx
lea ecx, [eax + 0x1000]
call fcn.0040ea80
mov ecx, eax
add esp, 0xc
mov dword [0x4cc884], ecx
test ecx, ecx
jne 0x403b33
mov dword [0x4cc834], 0
jmp 0x403b5f
push 0
lea eax, [esp + 0x94]
add ecx, 0x67b
push 3
push eax
mov edx, 0x1000
call fcn.0040ea80
add esp, 0xc
mov dword [0x4cc834], eax
test eax, eax
jne 0x403c17
mov ecx, 0x30
lea eax, [esp + 0xf4]
nop dword [eax + eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x403b70
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x18]
cmp dword [eax + 0x30], ecx
je 0x403c10
mov dword [esp + 0x10], 0x84c05e40
xor esi, esi
mov dword [esp + 0x14], 0x6ae69f02
mov dword [esp + 0x18], 0xa7dc6e73
cmp si, 1
jae 0x403bd9
movzx edi, si
xor edx, edx
mov ecx, dword [esp + edi*4 + 0x10]
call fcn.0040ddf0
test eax, eax
je 0x403bd2
shl edi, 4
lea edx, [esp + 0xf4]
add edx, edi
mov ecx, eax
call fcn.0040e9e0
inc esi
cmp si, 3
jb 0x403ba7
xor edi, edi
lea esi, [esp + 0xfc]
mov ecx, dword [esi - 4]
test ecx, ecx
je 0x403c07
mov edx, dword [esi]
test edx, edx
je 0x403c07
push 0
push 3
push 0x430cdc
add edx, 0xfffffffc
call fcn.0040ea80
add esp, 0xc
test eax, eax
jne 0x403c12
inc edi
add esi, 0x10
cmp edi, 1
jb 0x403be2
xor eax, eax
mov dword [0x4cc834], eax
test ebx, ebx
je 0x403c55
xor edx, edx
mov ecx, 0x84c05e40
call fcn.0040ddf0
mov edi, eax
test edi, edi
je 0x403d64
mov eax, 0x5a4d
cmp word [edi], ax
jne 0x403d64
mov ebx, dword [edi + 0x3c]
add ebx, edi
cmp dword [ebx], 0x4550
jne 0x403d64
jmp 0x403f63
push dword [esp + 0xc]
lea eax, [esp + 0x9c]
mov dword [esp + 0x9c], 0x92b82cd1
push 0x44
push 0x45
push 0x2f
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0xb0], 0x9b563c98
mov dword [esp + 0xb4], 0xa6dd8de
mov dword [esp + 0xb8], 0xc35e7f8b
mov dword [esp + 0xbc], 0x9ec42c0b
mov dword [esp + 0xc0], 0x257704af
mov dword [esp + 0xc4], 0x264aee3f
mov dword [esp + 0xc8], 0xb33857d9
mov dword [esp + 0xcc], 0x8b57fdcb
mov dword [esp + 0xd0], 0xc1d70950
mov dword [esp + 0xd4], 0x62b65f06
mov dword [esp + 0xd8], 0x9f14fd0b
mov dword [esp + 0xdc], 0xb4bffa76
mov dword [esp + 0xe0], 0xb40edfce
mov dword [esp + 0xe4], 0xc4f97465
mov dword [esp + 0xe8], 0x5ff1e833
mov dword [esp + 0xec], 0xba75c66
call fcn.004041b0
mov ecx, dword [0x4cc880]
lea eax, [esp + 0x20]
mov dword [esp + 0x90], eax
test ecx, ecx
jne 0x403d7b
xor edx, edx
mov ecx, 0x84c05e40
call fcn.0040ddf0
mov edx, 0xfa2a9aa9
mov ecx, eax
call fcn.0040e100
mov ecx, eax
mov dword [0x4cc880], ecx
test ecx, ecx
jne 0x403d7b
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.004107a0
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x90]
push eax
lea eax, [esp + 0xe8]
push eax
call ecx
push 0
push 0
push 0x60
push 1
push 1
push 0
lea eax, [esp + 0xfc]
mov dword [esp + 0x90], 0x18
mov dword [esp + 0x98], eax
xorps xmm0, xmm0
push 0
lea eax, [esp + 0x108]
mov dword [esp + 0x98], 0
push eax
lea eax, [esp + 0x98]
mov dword [esp + 0xa4], 0x40
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0xac], 0
push 0x80100000
push eax
mov dword [esp + 0xb8], 0
movlpd qword [esp + 0x118], xmm0
call fcn.00410633
add esp, 0x2c
test eax, eax
je 0x403e2a
mov eax, dword [esp + 0x70]
test eax, eax
je 0x40412f
cmp eax, 0xffffffff
je 0x40412f
push dword [esp + 0x70]
lea eax, [esp + 0x78]
push 0x8000000
push 2
push 0
push 0
push 0xf0005
push eax
call fcn.004105f1
add esp, 0x1c
test eax, eax
jne 0x40412f
push 2
push eax
push 1
mov dword [esp + 0xec], eax
lea eax, [esp + 0xec]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x84]
push eax
push 0xffffffffffffffff
push dword [esp + 0x98]
call fcn.004105fc
add esp, 0x28
test eax, eax
jne 0x40412f
mov esi, dword [esp + 0x68]
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x40412f
mov ebx, dword [esi + 0x3c]
add ebx, esi
cmp dword [ebx], 0x4550
jne 0x40412f
mov eax, dword [ebx + 0x50]
push 4
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
push 0x1000
push eax
push 0
lea eax, [esp + 0x7c]
push eax
push 0xffffffffffffffff
call fcn.004105af
add esp, 0x18
test eax, eax
jne 0x40412f
push dword [ebx + 0x54]
push dword [esp + 0x6c]
push dword [esp + 0x74]
call fcn.00414eb0
mov esi, dword [esi + 0x3c]
xor eax, eax
add esp, 0xc
add esi, 0x10c
xor edi, edi
cmp ax, word [ebx + 6]
jae 0x403f3b
add esi, dword [esp + 0x68]
nop dword [eax]
mov eax, dword [esi - 4]
test eax, eax
je 0x403f2f
push eax
mov eax, dword [esi]
add eax, dword [esp + 0x6c]
push eax
mov eax, dword [esi - 8]
add eax, dword [esp + 0x74]
push eax
call fcn.00414eb0
add esp, 0xc
movzx eax, word [ebx + 6]
inc edi
add esi, 0x28
cmp edi, eax
jb 0x403f10
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov ebx, dword [eax + 0x3c]
add ebx, eax
test esi, esi
je 0x403f5f
push esi
push 0xffffffffffffffff
call fcn.00410607
add esp, 8
mov dword [esp + 0x68], 0
mov edi, dword [esp + 0x6c]
mov eax, dword [ebx + 0x78]
mov dword [esp + 0x90], eax
test eax, eax
je 0x40412f
lea edx, [eax + edi]
xor ebx, ebx
test edx, edx
je 0x404131
mov eax, dword [edx + 0x20]
add eax, edi
mov dword [esp + 0xc], eax
cmp dword [edx + 0x18], ebx
jbe 0x404122
mov ecx, dword [eax + ebx*4]
mov eax, dword [edx + 0x24]
add ecx, edi
mov esi, dword [edx + 0x1c]
lea eax, [eax + ebx*2]
movzx eax, word [eax + edi]
lea eax, [edi + eax*4]
mov esi, dword [eax + esi]
add esi, edi
call fcn.004048e0
cmp eax, 0x55f33ee9
ja 0x404095
je 0x404081
cmp eax, 0x44ac5182
ja 0x404041
je 0x40402b
cmp eax, 0x1c7650a6
je 0x404014
cmp eax, 0x1feeb616
je 0x403ffd
cmp eax, 0x2df8c40f
jne 0x40410b
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc838], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc848], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc844], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
mov eax, dword [esi + 1]
mov dword [0x4cc850], eax
jmp 0x404107
cmp eax, 0x4f21bd4e
je 0x40406a
cmp eax, 0x50b60c2e
jne 0x40410b
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc854], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc858], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc830], eax
jmp 0x404107
cmp eax, 0xc599a33a
ja 0x4040db
je 0x4040cb
cmp eax, 0x6aab1661
je 0x4040bb
cmp eax, 0x96da030b
jne 0x40410b
cmp byte [esi], 0xb8
jne 0x40412f
mov eax, dword [esi + 1]
mov dword [0x4cc83c], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc840], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc828], eax
jmp 0x404107
cmp eax, 0xc66c52a5
je 0x4040f9
cmp eax, 0xe762b067
jne 0x40410b
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc82c], eax
jmp 0x404107
cmp byte [esi], 0xb8
jne 0x40412f
movzx eax, word [esi + 1]
mov dword [0x4cc84c], eax
test eax, eax
je 0x40412f
mov edx, dword [esp + 0x90]
inc ebx
mov eax, dword [esp + 0xc]
add edx, edi
cmp ebx, dword [edx + 0x18]
jb 0x403f94
mov ebx, 1
mov dword [0x4cc820], ebx
jmp 0x404131
xor ebx, ebx
cmp dword [esp + 0x6c], 0
je 0x404154
push 0x8000
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x74]
push eax
push 0xffffffffffffffff
call fcn.004105ba
add esp, 0x10
mov esi, dword [esp + 0x68]
test esi, esi
je 0x40416f
push esi
push 0xffffffffffffffff
call fcn.00410607
add esp, 8
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x74]
test eax, eax
je 0x404180
push eax
call fcn.004105a4
add esp, 4
mov eax, dword [esp + 0x70]
test eax, eax
je 0x404191
push eax
call fcn.004105a4
add esp, 4
mov ecx, dword [esp + 0x124]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004107a0
mov esp, ebp
pop ebp
ret