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

Disassembly:
sub esp, 0x144
mov eax, dword [esp + 0x148]
or dword [esp + 4], 0xffffffff
or dword [esp + 0x28], 0xffffffff
or dword [esp + 0x1c], 0xffffffff
mov edx, dword [esp + 0x154]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x15c]
xor ebx, ebx
add esi, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], ebx
push edi
mov edi, ecx
lea ecx, [esi - 1]
mov dword [esp + 0x30], ecx
mov ebp, edi
mov dword [esp + 0x18], ebp
test edx, 0xe20f5a6f
je 0x430892
push 0xfffffffffffffffd
jmp 0x431159
test edi, edi
je 0x431157
test eax, eax
je 0x431157
mov ecx, dword [esp + 0x16c]
cmp dword [esp + 0x168], ebx
jne 0x4308ba
test ecx, ecx
jg 0x431157
test ecx, ecx
jns 0x4308c5
push 0xfffffffffffffff1
jmp 0x431159
movzx eax, word [edi + 0x18]
add eax, edi
mov dword [esp + 0xe0], ebx
cmp dword [edi + 0x20], 0
mov ebx, 0x404ae8
mov dword [esp + 0x70], eax
movzx eax, word [edi + 0x1c]
cmovne ebx, dword [edi + 0x20]
cmp dword [edi], 0x50435245
mov dword [esp + 0x68], eax
movzx eax, word [edi + 0x1a]
mov dword [esp + 0x6c], eax
mov eax, 0xf4240
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], ebx
je 0x43093c
lea eax, [esp + 0x124]
mov ecx, edi
push eax
push 0
lea edx, [esp + 0x104]
call fcn.004145a5
mov ebp, eax
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x430935
push 0xfffffffffffffffc
jmp 0x431159
mov edx, dword [esp + 0x164]
mov ecx, dword [ebp + 8]
mov eax, ecx
or eax, edx
shr ecx, 0x12
shr eax, 4
and ecx, 1
and eax, 1
mov dword [esp + 0x3c], ecx
movzx ecx, word [ebp + 0x1c]
mov dword [esp + 0x44], eax
movzx eax, word [ebp + 0xc]
shr eax, 3
and eax, 1
mov dword [esp + 0xf8], eax
movzx eax, word [ebp + 0x1a]
imul ecx, eax
movzx eax, word [ebp + 0x18]
push 2
add ecx, edi
xor edi, edi
add eax, ecx
inc edi
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x160]
add eax, ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
shr eax, 5
and eax, edi
shr ecx, 0xf
mov dword [esp + 0x9c], eax
and ecx, edi
mov eax, dword [ebp + 8]
shr eax, 0xb
and eax, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x90], eax
mov eax, dword [ebp + 8]
shr eax, 0x1d
and eax, edi
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 8]
shr eax, 0x19
and eax, edi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x94], eax
mov eax, edx
shr eax, 7
and eax, edi
mov dword [esp + 0x88], eax
mov eax, edx
shr eax, 8
and eax, edi
mov dword [esp + 0x8c], eax
mov eax, edx
shr eax, 0xa
and eax, edi
mov dword [esp + 0xa0], eax
mov eax, edx
shr eax, 0x1c
and eax, edi
mov dword [esp + 0xa4], eax
mov eax, edx
and eax, 0x8000000
pop edi
cmovne ecx, edi
lea eax, [ebx + 0x340]
xor edi, edi
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x7c], eax
mov ecx, 0x1800000
mov dword [esp + 0xa4], edi
mov eax, edx
mov dword [esp + 0xe4], edi
mov dword [esp + 0xdc], edi
and eax, ecx
je 0x430a99
cmp eax, 0x800000
je 0x430a8d
cmp eax, 0x1000000
je 0x430ab1
push 0xffffffffffffffe9
jmp 0x431159
xor ebx, ebx
inc ebx
mov dword [esp + 0xa8], ebx
jmp 0x430abb
mov eax, dword [ebp + 8]
test ecx, eax
je 0x430ab1
xor ebx, ebx
shr eax, 0x17
inc ebx
and eax, ebx
mov dword [esp + 0xa8], eax
jmp 0x430abb
xor ebx, ebx
mov dword [esp + 0xa8], edi
inc ebx
mov ecx, 0x700000
test ecx, edx
jne 0x430ac9
mov eax, dword [ebp + 8]
jmp 0x430acb
mov eax, edx
and eax, ecx
je 0x430af5
cmp eax, 0x100000
je 0x430b1a
cmp eax, 0x200000
je 0x430b16
cmp eax, 0x300000
je 0x430b0f
cmp eax, 0x400000
je 0x430af5
cmp eax, 0x500000
jne 0x430a86
push 2
pop ebx
mov dword [esp + 0x60], ebx
cmp dword [esp + 0xc4], edi
je 0x430b50
test byte [ebp + 0xc], 1
je 0x430b50
push 0xfffffffffffffff3
jmp 0x431159
mov ecx, 0xd0a
jmp 0x430b1d
push 0xa
jmp 0x430b1c
push 0xd
pop ecx
mov ebx, edi
mov dword [esp + 0x60], ebx
cmp ecx, 0xff
jle 0x430b42
mov eax, ecx
mov dword [esp + 0x64], 2
sar eax, 8
mov byte [esp + 0x74], al
mov byte [esp + 0x75], cl
jmp 0x430af9
mov dword [esp + 0x64], 1
mov byte [esp + 0x74], cl
jmp 0x430af9
mov eax, dword [ebp + 8]
and eax, 7
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x16c]
push 3
cdq
pop edi
idiv edi
mov edi, dword [esp + 0x16c]
movzx eax, word [ebp + 0x12]
sub edi, edx
test ax, ax
je 0x430bba
mov ecx, eax
mov eax, edi
push 3
cdq
pop ebp
idiv ebp
cmp ecx, eax
jl 0x430bba
lea eax, [ecx + 1]
imul edi, eax, 3
mov ecx, edi
shl ecx, 2
call dword [0x406b10]
mov ebp, eax
mov dword [esp + 0x54], ebp
test ebp, ebp
jne 0x430bac
push 0xfffffffffffffffa
jmp 0x431159
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x28], 1
jmp 0x430bc5
mov ebp, dword [esp + 0x168]
mov dword [esp + 0x54], ebp
lea eax, [edi + edi]
and dword [esp + 0x80], 0
cdq
push 3
pop ecx
idiv ecx
mov ecx, dword [esp + 0x18]
or dword [esp + 0xcc], 0xffffffff
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edi
movzx eax, word [ecx + 0x10]
lea eax, [eax*2 + 2]
cmp eax, dword [esp + 0x16c]
cmovg eax, edi
mov dword [esp + 0xec], eax
test ebp, ebp
je 0x430c3d
cdq
lea edi, [edi*4]
sub eax, edx
xor ecx, ecx
sar eax, 1
inc ecx
add edi, ebp
sub ecx, eax
lea eax, [edi + ecx*4]
sub edi, 4
cmp edi, eax
jb 0x430c39
or dword [edi], 0xffffffff
sub edi, 4
cmp edi, eax
jae 0x430c27
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x44], 0
jne 0x430c6d
test byte [ecx + 0xc], 2
je 0x430c6d
movzx eax, word [ecx + 0x14]
movzx edx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x14], edx
mov dword [esp + 0x40], eax
je 0x430c6d
mov eax, dword [esp + 0x78]
movzx edx, byte [eax + edx]
mov dword [esp + 0x14], edx
test byte [ecx + 0xc], 4
je 0x430c98
movzx eax, word [ecx + 0x16]
movzx ecx, al
shr eax, 8
and eax, 1
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + ecx + 0x100]
mov dword [esp + 0x2c], eax
and dword [esp + 0x164], 0x4000000
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
test ebp, ebp
je 0x430d06
mov eax, dword [esp + 0xec]
xor edi, edi
and dword [esp + 0xf4], edi
lea eax, [eax*4]
add eax, ebp
mov ecx, eax
sub ecx, ebp
add ecx, 3
shr ecx, 2
cmp ebp, eax
cmova ecx, dword [esp + 0xf4]
test ecx, ecx
je 0x430d02
or dword [ebp], 0xffffffff
inc edi
lea ebp, [ebp + 4]
cmp edi, ecx
jb 0x430ce7
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x3c], 0
je 0x430d66
mov edi, esi
cmp esi, edx
jae 0x430d66
test ebx, ebx
je 0x430d3b
push dword [esp + 0x24]
lea eax, [esp + 0x68]
mov ecx, edi
push eax
push edx
mov edx, ebx
call fcn.0041e587
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x430d62
mov edx, dword [esp + 0xb4]
jmp 0x430d5d
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp edi, eax
ja 0x430d5d
mov al, byte [edi]
cmp al, byte [esp + 0x74]
jne 0x430d5d
cmp ecx, 1
je 0x430d62
mov al, byte [edi + 1]
cmp al, byte [esp + 0x75]
je 0x430d62
inc edi
cmp edi, edx
jb 0x430d13
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x164]
test edx, edx
jne 0x430e6c
mov ecx, dword [esp + 0x14]
test ecx, ecx
js 0x430dbf
cmp dword [esp + 0x40], edx
je 0x430db6
cmp esi, edi
jae 0x430e6c
mov ebx, ecx
movzx ecx, byte [esi]
mov eax, dword [esp + 0x78]
movzx eax, byte [ecx + eax]
cmp eax, ebx
je 0x430e6c
inc esi
cmp esi, edi
jb 0x430d8d
jmp 0x430e6c
movzx eax, byte [esi]
cmp eax, ecx
je 0x430e6c
inc esi
cmp esi, edi
jb 0x430daa
jmp 0x430e6c
cmp dword [esp + 0xf8], 0
je 0x430e6c
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0x160]
cmp esi, eax
jbe 0x430e6c
cmp esi, edi
jae 0x430e52
test ebx, ebx
je 0x430e17
cmp esi, dword [esp + 0xb0]
jbe 0x430e42
push dword [esp + 0x24]
lea eax, [esp + 0x68]
mov edx, ebx
push eax
push dword [esp + 0xb8]
mov ecx, esi
call fcn.0041e621
mov ebx, dword [esp + 0x60]
test eax, eax
jne 0x430e47
jmp 0x430e42
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x64]
add eax, ecx
cmp esi, eax
jb 0x430e42
mov edx, esi
sub edx, ecx
mov al, byte [edx]
cmp al, byte [esp + 0x74]
jne 0x430e42
cmp ecx, 1
je 0x430e47
mov al, byte [edx + 1]
cmp al, byte [esp + 0x75]
je 0x430e47
inc esi
cmp esi, edi
jb 0x430de7
mov edx, dword [esp + 0x164]
mov ebp, dword [esp + 0x54]
cmp byte [esi - 1], 0xd
jne 0x430e6c
cmp ebx, 1
je 0x430e62
cmp ebx, 2
jne 0x430e6c
cmp esi, edi
jae 0x430e6c
cmp byte [esi], 0xa
jne 0x430e6c
inc esi
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
test edx, edx
jne 0x430eed
cmp dword [esp + 0xc4], edx
jne 0x430eed
mov edx, dword [esp + 0x38]
test edx, edx
js 0x430eed
mov eax, ebx
sub eax, esi
cmp eax, 0x3e8
jge 0x430eed
xor ecx, ecx
cmp dword [esp + 0x14], ecx
setge cl
add ecx, esi
cmp ecx, dword [esp + 0x30]
jbe 0x430eed
cmp dword [esp + 0x34], 0
je 0x430eca
cmp ecx, ebx
jae 0x431045
mov edi, dword [esp + 0x2c]
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x430ee0
cmp eax, edi
je 0x430ee0
cmp ecx, ebx
jb 0x430eb8
jmp 0x430ee1
cmp ecx, ebx
jae 0x431045
movzx eax, byte [ecx]
inc ecx
cmp eax, edx
je 0x430ee0
cmp ecx, ebx
jb 0x430ed2
jmp 0x430ee1
dec ecx
cmp ecx, ebx
jae 0x431045
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xac]
lea eax, [esp + 0x48]
xor ebp, ebp
mov dword [esp + 0xb8], esi
push ebp
push ebp
push ebp
push dword [esp + 0xfc]
mov ecx, esi
mov dword [esp + 0xd0], esi
push eax
push 2
push ebp
push esi
mov dword [esp + 0x68], ebp
call fcn.0042d44e
mov edi, eax
cmp dword [esp + 0xa4], ebp
je 0x430f3f
mov eax, dword [esp + 0x20]
test eax, eax
cmove eax, dword [esp + 0xc0]
mov dword [esp + 0x20], eax
cmp edi, 0xfffffc1a
je 0x431049
cmp edi, 0xfffffc1b
je 0x430f7f
mov eax, 0xfffffc1c
cmp edi, eax
je 0x430f74
jle 0x43104b
cmp edi, 0xfffffc1e
jle 0x430f7f
test edi, edi
jne 0x43104b
jmp 0x430f7f
mov ebp, dword [esp + 0xb8]
cmp ebp, esi
jne 0x430f82
lea ebp, [esi + 1]
mov ebx, dword [esp + 0x60]
xor edi, edi
mov edx, dword [esp + 0xb4]
cmp dword [esp + 0x3c], edi
je 0x430fef
test ebx, ebx
je 0x430fc5
cmp esi, edx
jae 0x430fef
push dword [esp + 0x24]
lea eax, [esp + 0x68]
mov ecx, esi
push eax
push edx
mov edx, ebx
call fcn.0041e587
test eax, eax
jne 0x4310bf
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xb4]
jmp 0x430fef
mov ecx, dword [esp + 0x64]
mov eax, edx
sub eax, ecx
cmp esi, eax
ja 0x430fef
mov al, byte [esi]
cmp al, byte [esp + 0x74]
jne 0x430fef
cmp ecx, 1
je 0x4310bf
mov al, byte [esi + 1]
cmp al, byte [esp + 0x75]
je 0x4310bf
mov esi, ebp
cmp dword [esp + 0x44], edi
jne 0x4310bf
mov eax, dword [esp + 0x10]
cmp ebp, eax
ja 0x4310bf
cmp byte [ebp - 1], 0xd
jne 0x431035
cmp ebp, eax
jae 0x431035
cmp byte [ebp], 0xa
jne 0x431035
mov eax, dword [esp + 0x18]
test byte [eax + 0xc], 0x20
jne 0x431035
cmp ebx, 1
je 0x431032
cmp ebx, 2
je 0x431032
cmp dword [esp + 0x64], 2
jne 0x431035
lea esi, [ebp + 1]
and dword [esp + 0xe4], edi
mov ebp, dword [esp + 0x54]
jmp 0x430caa
xor edi, edi
jmp 0x4310c7
mov edi, ebp
xor esi, esi
inc esi
cmp edi, esi
je 0x43105a
cmp edi, 0xfffffc19
jne 0x4310c3
mov ebx, dword [esp + 0x16c]
cmp dword [esp + 0x28], ebp
je 0x4310b2
cmp ebx, 4
jl 0x431090
lea eax, [ebx*4 - 8]
push eax
mov eax, dword [esp + 0x58]
add eax, 8
push eax
mov eax, dword [esp + 0x170]
add eax, 8
push eax
call dword [0x43c550]
add esp, 0xc
mov eax, dword [esp + 0x80]
cmp dword [esp + 0xc8], ebx
mov ecx, dword [esp + 0x54]
cmovg eax, esi
mov dword [esp + 0x80], eax
call dword [0x40580c]
cmp dword [esp + 0x80], ebp
je 0x431118
mov eax, ebp
jmp 0x431124
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x54]
cmp dword [esp + 0x28], 0
je 0x4310d6
mov ecx, ebp
call dword [0x40580c]
push 0xfffffffffffffff4
pop eax
test edi, edi
je 0x4310e5
cmp edi, eax
je 0x4310e5
mov eax, edi
jmp 0x43115a
mov edx, dword [esp + 0x20]
test edx, edx
je 0x431113
cmp dword [esp + 0x16c], 1
jle 0x43115a
mov ecx, dword [esp + 0x168]
sub edx, dword [esp + 0x158]
sub ebx, dword [esp + 0x158]
mov dword [ecx], edx
mov dword [ecx + 4], ebx
jmp 0x43115a
or eax, 0xffffffff
jmp 0x43115a
mov eax, dword [esp + 0xc8]
cdq
sub eax, edx
sar eax, 1
cmp ebx, 2
jge 0x43112d
mov eax, ebp
jmp 0x43115a
mov edx, dword [esp + 0x168]
mov ecx, dword [esp + 0xb8]
sub ecx, dword [esp + 0xb0]
mov dword [edx], ecx
mov ecx, dword [esp + 0xbc]
sub ecx, dword [esp + 0xb0]
mov dword [edx + 4], ecx
jmp 0x43115a
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x144
ret 0x18