Function at 0x407c50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x46b521
mov eax, dword fs:[0]
push eax
sub esp, 0xd4
mov eax, dword [0x4854a0]
xor eax, esp
mov dword [esp + 0xd0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4854a0]
xor eax, esp
push eax
lea eax, [esp + 0xe8]
mov dword fs:[0], eax
mov eax, dword [esp + 0xf8]
mov edi, ecx
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
jbe 0x407ca9
call fcn.004382be
mov ebp, esi
mov esi, dword [edi + 8]
cmp dword [edi + 4], esi
mov dword [esp + 0x1c], esi
jbe 0x407cbc
call fcn.004382be
xor ebx, ebx
mov edi, edi
cmp ebp, esi
je 0x40806b
cmp ebp, dword [edi + 8]
jb 0x407cd2
call fcn.004382be
mov esi, 0xf
mov eax, ebp
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x407ce8
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x44]
call fcn.00403a90
mov dword [esp + 0xf0], ebx
push 1
push 0x477658
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2c], bl
call fcn.00403a90
mov byte [esp + 0xf0], 1
cmp ebp, dword [edi + 8]
jb 0x407d33
call fcn.004382be
lea ecx, [ebp + 0x104]
mov eax, ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
cmp dl, bl
jne 0x407d50
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x60]
call fcn.00403a90
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x5c]
push edx
lea esi, [esp + 0x7c]
mov byte [esp + 0xf8], 2
call fcn.004053a0
lea ecx, [esp + 0x44]
push ecx
push eax
lea esi, [esp + 0xd8]
mov byte [esp + 0x100], 3
call fcn.004053a0
add esp, 0x10
mov edi, 0x10
cmp dword [esp + 0x8c], edi
jb 0x407db9
mov edx, dword [esp + 0x78]
push edx
call fcn.0041bf87
add esp, 4
mov esi, 0xf
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], ebx
mov byte [esp + 0x78], bl
cmp dword [esp + 0x70], edi
jb 0x407de3
mov eax, dword [esp + 0x5c]
push eax
call fcn.0041bf87
add esp, 4
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], ebx
mov byte [esp + 0x5c], bl
cmp dword [esp + 0x38], edi
jb 0x407e02
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0041bf87
add esp, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
mov byte [esp + 0xf0], 8
cmp dword [esp + 0x54], edi
jb 0x407e29
mov edx, dword [esp + 0x40]
push edx
call fcn.0041bf87
add esp, 4
mov eax, dword [esp + 0xdc]
add eax, 0xfffffffc
mov dword [esp + 0x54], esi
push eax
xor ecx, ecx
lea esi, [esp + 0x94]
lea edx, [esp + 0xcc]
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.00402520
mov edx, dword [esp + 0x18]
mov byte [esp + 0xf0], 9
mov eax, dword [edx + 0x14]
mov ecx, dword [esp + 0xa4]
cmp eax, ecx
jbe 0x407f4b
push ecx
xor ecx, ecx
lea esi, [esp + 0xb0]
call fcn.00402520
mov byte [esp + 0xf0], 0xa
cmp dword [esp + 0xa8], edi
mov edx, dword [esp + 0x94]
jae 0x407ea1
lea edx, [esp + 0x94]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xa4]
cmp esi, edi
mov ecx, esi
jb 0x407eb7
mov ecx, edi
cmp dword [esp + 0xc4], 0x10
mov eax, dword [esp + 0xb0]
jae 0x407ecf
lea eax, [esp + 0xb0]
push ecx
push edx
push eax
call fcn.00401340
add esp, 0xc
cmp eax, ebx
jne 0x407f13
cmp esi, edi
jb 0x407f13
xor eax, eax
cmp esi, edi
setne al
cmp eax, ebx
jne 0x407f13
mov edi, dword [esp + 0x18]
cmp dword [edi + 0x14], esi
ja 0x407efb
call fcn.00450ee5
cmp dword [edi + 0x18], 0x10
jb 0x407f06
mov eax, dword [edi + 4]
jmp 0x407f09
lea eax, [edi + 4]
cmp byte [eax + esi], 0x5c
je 0x407fc2
cmp dword [esp + 0xc4], 0x10
jb 0x407f2d
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.0041bf87
add esp, 4
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
mov edi, 0x10
cmp dword [esp + 0xa8], edi
jb 0x407f64
mov edx, dword [esp + 0x94]
push edx
call fcn.0041bf87
add esp, 4
mov dword [esp + 0xf0], 0xffffffff
cmp dword [esp + 0xe0], edi
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x94], bl
jb 0x407fa1
mov eax, dword [esp + 0xcc]
push eax
call fcn.0041bf87
add esp, 4
mov ecx, dword [esp + 0x14]
cmp ebp, dword [ecx + 8]
jb 0x407faf
call fcn.004382be
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
add ebp, 0x209
jmp 0x407cc0
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
jbe 0x407fd3
call fcn.004382be
sub ebp, esi
mov ecx, ebp
mov eax, 0x3ee4f99d
imul ecx
sar edx, 7
mov esi, edx
shr esi, 0x1f
mov edi, 0x10
add esi, edx
cmp dword [esp + 0xc4], edi
jb 0x408006
mov edx, dword [esp + 0xb0]
push edx
call fcn.0041bf87
add esp, 4
cmp dword [esp + 0xa8], edi
mov ebp, 0xf
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc0], ebx
mov byte [esp + 0xb0], bl
jb 0x408039
mov eax, dword [esp + 0x94]
push eax
call fcn.0041bf87
add esp, 4
cmp dword [esp + 0xe0], edi
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x94], bl
jb 0x408067
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.0041bf87
add esp, 4
mov eax, esi
jmp 0x40806e
or eax, 0xffffffff
mov ecx, dword [esp + 0xe8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00436f5b
add esp, 0xe0
ret 4