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

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x64]
push ebx
push ebp
push esi
xor ebp, ebp
push edi
push eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x14], ebp
call fcn.00401dc0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x80]
mov ecx, eax
mov esi, 2
and ecx, esi
mov dword [esp + 0x44], ecx
mov ecx, eax
and ecx, 4
mov dword [esp + 0x48], ecx
mov edi, eax
mov ecx, eax
mov ebx, eax
and ecx, 0x20
and eax, 0x40
push 0x4a60ec
and edi, 0x10
push 0x4a8e60
and ebx, 1
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], 4
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0x34], ebp
call fcn.00401311
add esp, 0xc
cmp eax, 0x4a82cc
je 0x42770b
movzx ecx, word [eax]
cmp cx, bp
je 0x42770b
movsx ecx, cx
add eax, esi
cmp ecx, 0x41
je 0x4276fb
cmp ecx, 0x61
jne 0x427703
mov dword [esp + 0x28], esi
jmp 0x427703
mov dword [esp + 0x28], 1
movzx ecx, word [eax]
cmp cx, bp
jne 0x4276e6
cmp dword [esp + 0x68], 1
jne 0x4277a3
push 0x4a60ec
push 0x4a8cd8
call fcn.00401320
add esp, 8
cmp eax, ebp
je 0x4277a3
mov esi, dword [eax]
cmp esi, ebp
je 0x4277a3
mov eax, dword [esi]
cmp eax, ebp
je 0x4277a3
jmp 0x427740
push 0x4a8c28
push eax
call fcn.004014a1
add esp, 8
test eax, eax
je 0x427794
mov ecx, dword [esi]
push 0x4a8c08
push ecx
call fcn.004014a1
add esp, 8
test eax, eax
jne 0x42776d
cmp dword [esp + 0x64], 6
je 0x427794
mov edx, dword [esi]
push 0x4a8c50
push edx
call fcn.004014a1
add esp, 8
test eax, eax
jne 0x427788
cmp dword [esp + 0x64], 6
jne 0x427794
mov eax, dword [esi + 4]
add esi, 4
cmp eax, ebp
jne 0x427740
jmp 0x4277a3
call fcn.00401168
push ebp
push ebp
call fcn.004019ce
add esp, 8
lea eax, [esp + 0x48]
push 0x401686
push eax
call fcn.004013c5
lea ecx, [esp + 0x5c]
push 0x401686
push ecx
call fcn.004013c5
add esp, 0x10
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [edx*4 + 0x47fe38]
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x58], ebp
call eax
add esp, 0xc
test eax, eax
je 0x427d29
lea ecx, [esp + 0x48]
push ecx
call fcn.00401d75
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x4c]
add eax, 0xffffffff
add esp, 4
cmp eax, 0x11
ja case.0x427813.1
movzx edx, byte [eax + 0x427e04]
jmp dword [edx*4 + 0x427df8]
mov edx, dword [esp + 0x28]
cmp edx, 1
jne 0x427855
cmp word [ecx], 0x2e
jne 0x427855
movzx eax, word [ecx + 2]
cmp ax, bp
je 0x42784d
cmp ax, 0x2f
je 0x42784d
cmp ax, 0x2e
jne 0x427855
movzx eax, word [ecx + 4]
cmp ax, bp
je 0x42784d
cmp ax, 0x2f
jne 0x427855
mov dword [esp + 0x18], 1
cmp dword [esp + 0x20], ebp
jne 0x427865
cmp word [ecx], 0x2e
jne 0x427865
cmp edx, ebp
je 0x42786b
cmp dword [esp + 0x18], ebp
je case.0x427813.1
mov dword [esp + 0x18], ebp
jmp case.0x42789a.1
mov eax, dword [esp + 0x7c]
mov ebx, eax
and ebx, 1
and eax, 0x10
mov edi, eax
mov dword [esp + 0x38], edi
mov eax, dword [esp + 0x64]
cmp eax, 6
ja case.0x42789a.1
movzx eax, byte [eax + 0x427e24]
jmp dword [eax*4 + 0x427e18]
cmp dword [esp + 0x20], ebp
je 0x427cea
cmp dword [esp + 0x34], ebp
je 0x4278cb
mov edx, dword [esp + 0x78]
push edx
push ecx
call fcn.0040192e
add esp, 8
test eax, eax
je case.0x42789a.1
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x74]
push ecx
push eax
call fcn.0040146f
mov esi, eax
add esp, 8
cmp esi, dword [esp + 0x1c]
jg 0x427937
cmp esi, 4
je 0x427940
cmp ebx, ebp
je 0x427907
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x6c]
mov eax, dword [edx]
push edi
push ecx
push eax
call fcn.0040131b
add esp, 0xc
test eax, eax
je case.0x42789a.1
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x70]
push ecx
push eax
mov dword [eax + 4], ebp
call fcn.0040156e
mov edx, dword [esp + 0x78]
push edx
call fcn.00401d75
add esp, 0xc
cmp esi, ebp
mov dword [esp + 0x1c], esi
jne case.0x42789a.1
jmp 0x427d29
cmp esi, 4
jne case.0x42789a.1
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
push eax
mov eax, dword [edx]
push ecx
push eax
push esi
call fcn.00401ded
add esp, 0x10
test eax, eax
je case.0x42789a.1
cmp ebx, ebp
je 0x427985
mov ecx, dword [esi]
mov edx, dword [esp + 0x6c]
mov eax, dword [edx]
push edi
push ecx
push eax
call fcn.0040131b
add esp, 0xc
test eax, eax
je case.0x42789a.1
mov dword [esp + 0x1c], 3
jmp case.0x42789a.1
push 0x4a60ec
push 0x4a8c50
call fcn.00401320
add esp, 8
cmp eax, ebp
je 0x427a20
mov eax, dword [eax]
cmp eax, ebp
je 0x427a20
mov esi, eax
mov eax, dword [esi]
cmp eax, ebp
je 0x427a20
jmp 0x4279c0
push 0x4a8c64
push eax
call fcn.004014a1
add esp, 8
test eax, eax
jne 0x4279dc
mov dword [esp + 0x14], 2
jmp 0x427a16
mov ecx, dword [esi]
push 0x4a8c84
push ecx
call fcn.004014a1
add esp, 8
test eax, eax
jne 0x4279fa
mov dword [esp + 0x2c], 1
jmp 0x427a16
mov edx, dword [esi]
push 0x4a8c74
push edx
call fcn.004014a1
add esp, 8
test eax, eax
jne 0x427a16
mov dword [esp + 0x14], 1
mov eax, dword [esi + 4]
add esi, 4
cmp eax, ebp
jne 0x4279c0
cmp dword [esp + 0x14], ebp
jne 0x427a3b
cmp dword [esp + 0x2c], ebp
jne 0x427a3b
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
call fcn.00426110
jmp 0x427a51
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x4c]
push ecx
call fcn.00426160
add esp, 8
test eax, eax
je case.0x42789a.1
cmp ebx, ebp
je 0x427a7a
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
push edi
push edx
push ecx
call fcn.0040131b
add esp, 0xc
test eax, eax
je case.0x42789a.1
mov esi, dword [esp + 0x40]
cmp esi, ebp
je 0x427a99
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov eax, dword [edx]
call fcn.00426ee0
test eax, eax
je case.0x42789a.1
cmp dword [esp + 0x44], ebp
je 0x427ab6
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
call fcn.00426ee0
test eax, eax
jne case.0x42789a.1
cmp dword [esp + 0x34], ebp
je 0x427af1
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x48]
push ecx
push edx
call fcn.0040192e
add esp, 8
test eax, eax
jne 0x427af1
cmp esi, ebp
jne case.0x42789a.1
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
call fcn.00426ee0
test eax, eax
je case.0x42789a.1
mov esi, dword [esp + 0x68]
cmp esi, 1
je 0x427b10
cmp esi, 3
je 0x427b10
cmp esi, 7
je 0x427b10
mov eax, dword [esp + 0x64]
cmp eax, ebp
jne 0x427bd7
mov ecx, dword [esp + 0x48]
push ecx
lea edx, [esp + 0x58]
push edx
mov dword [esp + 0x60], ebp
call fcn.0040156e
add esp, 8
cmp esi, 1
je 0x427b55
cmp esi, 3
jle 0x427b85
cmp esi, 5
jg 0x427b85
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
push eax
mov eax, dword [ecx]
call fcn.00426e40
lea edx, [esp + 0x58]
push eax
push edx
call fcn.004014d8
add esp, 0xc
jmp 0x427b85
cmp edi, ebp
je 0x427b85
cmp ebx, ebp
je 0x427b85
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
push eax
mov eax, dword [ecx]
call fcn.00426e40
add esp, 4
cmp ax, 0x2f
jne 0x427b85
lea edx, [esp + 0x54]
push 0x2f
push edx
call fcn.004014d8
add esp, 8
lea eax, [esp + 0x54]
push eax
call fcn.00401d75
add esp, 4
cmp esi, 1
je 0x427ba1
cmp esi, 7
je 0x427ba1
cmp esi, 3
jne 0x427bb6
mov ecx, dword [esp + 0x54]
push ecx
call fcn.00401aeb
add esp, 4
test eax, eax
jne case.0x42789a.1
lea edx, [esp + 0x54]
push edx
call fcn.00401190
add esp, 4
cmp dword [esp + 0x64], ebp
jne 0x427bd3
add dword [esp + 0x10], 1
jmp case.0x42789a.1
mov eax, dword [esp + 0x64]
cmp eax, 2
je 0x427bea
cmp eax, 3
je 0x427bea
cmp eax, 4
jne case.0x42789a.1
cmp dword [esp + 0x3c], ebp
je 0x427c07
mov eax, dword [esp + 0x48]
call fcn.004263f0
test eax, eax
je 0x427c07
add dword [esp + 0x24], 1
jmp case.0x42789a.1
cmp dword [esp + 0x64], 4
jne 0x427c3d
mov edi, dword [esp + 0x48]
push 8
call fcn.00401659
push edi
mov esi, eax
call fcn.004019e2
mov edi, dword [esp + 0x40]
mov dword [esi], eax
mov eax, dword [0x4a7ba4]
add esp, 8
add dword [esp + 0x30], 1
mov dword [esi + 4], eax
mov dword [0x4a7ba4], esi
cmp dword [0x4a7b78], ebp
jne 0x427c5b
push 0x4a60ec
push 0x4a8ba8
call fcn.00401320
add esp, 8
test eax, eax
je 0x427c75
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x74]
push ecx
push edx
call fcn.00401730
add esp, 8
test eax, eax
je 0x427d00
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push ecx
add eax, 1
push esi
push eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
push edx
push eax
mov eax, dword [esp + 0x5c]
call fcn.00426610
add esp, 0x14
test eax, eax
je 0x427cb4
cmp dword [esp + 0x64], 4
je 0x427cb4
mov dword [esp + 0x18], 1
cmp esi, ebp
je 0x427cde
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x70]
cmp dword [edx + 4], ecx
jae 0x427cde
mov eax, dword [esp + 0x74]
mov esi, edx
push eax
push esi
mov dword [esi + 4], ebp
call fcn.0040156e
push esi
call fcn.00401d75
add esp, 0xc
cmp dword [esp + 0x18], ebp
je case.0x42789a.1
jmp 0x427d29
mov eax, dword [esp + 0x70]
push eax
mov dword [eax + 4], ebp
call fcn.00401d75
add esp, 4
mov dword [esp + 0x1c], ebp
jmp 0x427d29
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x70]
push ecx
push esi
mov dword [esi + 4], ebp
call fcn.0040156e
push esi
call fcn.00401d75
mov eax, 1
add esp, 0xc
mov dword [esp + 0x10], eax
mov dword [0x4a7b7c], eax
lea edx, [esp + 0x48]
push edx
call fcn.00401ea6
add esp, 4
cmp dword [esp + 0x64], 4
jne 0x427d8c
mov eax, dword [0x4a7b74]
mov ebx, dword [esp + 0x30]
cmp ebx, eax
jle 0x427d7a
cmp eax, 0xffffffff
je 0x427d7a
cmp dword [esp + 0x10], 1
jle 0x427d8c
cmp eax, 0xffffffff
jge 0x427d63
lea eax, [ebx - 1]
mov dword [0x4a7b74], eax
mov ecx, dword [esp + 0x70]
push ecx
call fcn.00427540
add esp, 4
mov dword [esp + 0x10], 1
jmp 0x427d8c
mov dword [0x4a7b74], 0xffffffff
mov dword [esp + 0x24], ebp
mov dword [esp + 0x10], ebp
mov eax, dword [0x4a7ba4]
cmp eax, ebp
je 0x427dba
mov edx, dword [eax + 4]
mov esi, eax
mov dword [0x4a7ba4], edx
mov eax, dword [esi]
push eax
call fcn.00401334
push esi
call fcn.00401334
mov eax, dword [0x4a7ba4]
add esp, 8
cmp eax, ebp
jne 0x427d95
cmp dword [esp + 0x64], 6
jne 0x427dcd
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
cmp dword [esp + 0x3c], ebp
je 0x427deb
cmp dword [esp + 0x10], ebp
jne 0x427deb
mov eax, dword [esp + 0x24]
cmp eax, ebp
jle 0x427deb
pop edi
pop esi
pop ebp
neg eax
pop ebx
add esp, 0x50
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret