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

Disassembly:
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
sub esp, 0x8c
push ebx
push ebp
xor ebp, ebp
cmp dword [eax + 8], ebp
push esi
push edi
je 0x43154f
mov esi, dword [eax + 0x14]
cmp esi, ebp
je 0x43154f
cmp dword [eax + 0x18], ebp
je 0x43154f
mov eax, dword [edx + 8]
cmp eax, dword [edx]
jle 0x43154f
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 4]
jle 0x43154f
mov eax, dword [ecx + 8]
mov ebx, dword [ecx]
cmp eax, ebx
jle 0x43154f
mov edx, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
cmp edx, edi
jle 0x43154f
cmp ebx, ebp
jl 0x43154f
cmp edi, ebp
jl 0x43154f
mov edi, dword [esp + 0xa8]
cmp eax, dword [edi + 0x14]
jg 0x43154f
cmp edx, dword [edi + 0x18]
jg 0x43154f
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov edx, edi
mov eax, dword [edx + 0x14]
mov dword [esp + 0x8c], eax
mov eax, dword [edx + 0x18]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x90], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x8c]
push eax
lea edx, [esp + 0x60]
push edx
mov edx, dword [esp + 0xac]
lea eax, [esp + 0x48]
push eax
lea ebx, [esp + 0x70]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x68], esi
call fcn.00433a20
mov eax, dword [esp + 0x4c]
add esp, 0xc
test eax, eax
jl 0x43154f
mov ecx, dword [esp + 0x44]
test ecx, ecx
jl 0x43154f
mov edi, dword [esp + 0x48]
cmp edi, esi
jg 0x43154f
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa0]
cmp edx, dword [ebx + 0x18]
jg 0x43154f
cmp edi, eax
jle 0x43154f
cmp edx, ecx
jle 0x43154f
cmp dword [esp + 0x64], ebp
jl 0x43154f
mov ebp, dword [esp + 0x68]
test ebp, ebp
jl 0x43154f
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x14]
cmp dword [esp + 0x6c], edx
jg 0x43154f
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x18]
cmp dword [esp + 0x70], edx
jg 0x43154f
mov ebx, dword [esp + 0x64]
cmp dword [esp + 0x6c], ebx
jle 0x43154f
cmp dword [esp + 0x70], ebp
jle 0x43154f
xor edx, edx
test eax, eax
setl dl
sub edx, 1
and edx, eax
xor eax, eax
test ecx, ecx
setl al
mov dword [esp + 0x2c], edx
sub eax, 1
and eax, ecx
cmp esi, edi
mov dword [esp + 0x30], eax
mov eax, esi
jl 0x431081
mov eax, edi
test eax, eax
jge 0x43108f
mov dword [esp + 0x34], 0
jmp 0x431099
cmp esi, edi
jl 0x431095
mov esi, edi
mov dword [esp + 0x34], esi
mov edi, dword [esp + 0xa0]
mov ecx, dword [edi + 0x18]
mov edx, dword [esp + 0x4c]
cmp ecx, edx
mov eax, ecx
jl 0x4310af
mov eax, edx
test eax, eax
jge 0x4310bd
mov dword [esp + 0x38], 0
jmp 0x4310c9
cmp ecx, edx
mov eax, ecx
jl 0x4310c5
mov eax, edx
mov dword [esp + 0x38], eax
xor ecx, ecx
mov esi, dword [esp + 0xa8]
test ebx, ebx
setl cl
xor edx, edx
sub ecx, 1
and ebx, ecx
mov ecx, dword [esi + 0x14]
test ebp, ebp
setl dl
mov dword [esp + 0x40], ebx
mov eax, ecx
sub edx, 1
and edx, ebp
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x6c]
cmp ecx, edx
jl 0x4310ff
mov eax, edx
test eax, eax
jge 0x431107
xor eax, eax
jmp 0x43110f
cmp ecx, edx
mov eax, ecx
jl 0x43110f
mov eax, edx
mov edx, dword [esi + 0x18]
mov ebp, dword [esp + 0x70]
cmp edx, ebp
mov ecx, edx
jl 0x43111e
mov ecx, ebp
test ecx, ecx
jge 0x431126
xor ecx, ecx
jmp 0x43112e
cmp edx, ebp
mov ecx, edx
jl 0x43112e
mov ecx, ebp
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x34], edx
jle 0x43154f
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x38], edx
jle 0x43154f
cmp eax, ebx
jle 0x43154f
cmp ecx, dword [esp + 0x44]
jle 0x43154f
cmp dword [esi + 0x4c], 0
je 0x43154f
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x2c]
sub eax, ebx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [esp + 0x7c], edx
mov ebp, dword [esp + 0x30]
mov edx, ecx
fidiv dword [esp + 0x7c]
sub edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x88], edx
sub ecx, ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x74], 1
fstp dword [esp + 0x24]
fild dword [esp + 0x88]
fidiv dword [esp + 0x14]
fstp dword [esp + 0x20]
fld qword [0x4c1580]
fabs
fld dword [esp + 0x24]
fld st(0)
fld qword [0x4bdd20]
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcomp st(3)
fnstsw ax
test ah, 5
jnp 0x4311f1
mov dword [esp + 0x74], 0
fld dword [esp + 0x20]
mov dword [esp + 0x78], 1
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fabs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 5
jnp 0x431228
mov dword [esp + 0x78], 0
cmp ebp, dword [esp + 0x38]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
jge 0x43154b
mov dword [esp + 0x3c], 0
mov dword [esp + 0x58], edx
jmp 0x43125e
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xa0]
cmp dword [esp + 0x1c], 0
mov ebp, dword [esp + 0x2c]
jl 0x43154b
cmp dword [esp + 0x28], 0
jl 0x43154b
cmp dword [esp + 0x78], 0
je 0x431289
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], eax
jmp 0x4312a1
fild dword [esp + 0x3c]
fmul st(2)
call fcn.0049dc50
mov ecx, dword [esp + 0x88]
sub ecx, eax
mov dword [esp + 0x28], ecx
mov edx, dword [esi + 0x40]
sub edx, dword [esp + 0x28]
mov ecx, dword [edi + 0x40]
sub ecx, dword [esp + 0x1c]
sub edx, dword [esp + 0x44]
sub ecx, dword [esp + 0x30]
imul edx, dword [esi + 0x44]
imul ecx, dword [edi + 0x44]
add edx, dword [esi + 0x4c]
add ecx, dword [edi + 0x4c]
cmp ebp, dword [esp + 0x34]
lea eax, [edx + ebx*4]
lea edi, [ecx + ebp*4]
mov dword [esp + 0x84], eax
jge 0x431526
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x50], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x74], 0
jne 0x43130c
fild dword [esp + 0x50]
fmul st(1)
call fcn.0049dc50
mov edx, dword [esp + 0x84]
lea eax, [edx + eax*4]
mov esi, dword [esp + 0xac]
mov cl, byte [eax + 2]
mov esi, dword [esi]
cmp esi, 2
mov dl, byte [eax]
mov bl, byte [eax + 1]
mov al, byte [eax + 3]
mov byte [esp + 0x96], cl
jne 0x43133c
mov byte [edi], dl
mov byte [edi + 1], bl
mov byte [edi + 2], cl
mov byte [edi + 3], al
jmp 0x431505
test al, al
je 0x431505
cmp al, 0xff
jne 0x431358
mov byte [edi], dl
mov byte [edi + 1], bl
mov byte [edi + 2], cl
mov byte [edi + 3], al
jmp 0x431505
movzx ebp, byte [edi + 1]
xor ecx, ecx
mov ch, byte [edi + 3]
movzx edx, dl
mov cl, byte [edi + 2]
shl ecx, 8
or ecx, ebp
movzx ebp, byte [edi]
shl ecx, 8
or ebp, ecx
movzx ecx, al
movzx eax, byte [esp + 0x96]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, bl
or ecx, eax
shl ecx, 8
or ecx, edx
mov dword [esp + 0x54], ecx
mov bl, byte [esp + 0x57]
test bl, bl
mov dword [esp + 0x10], ebp
je 0x431503
cmp bl, 0xff
jne 0x4313b1
mov ebp, ecx
jmp 0x431503
mov eax, esi
sub eax, 0
je 0x4314a0
sub eax, 1
je 0x4313d1
sub eax, 1
jne 0x431503
mov ebp, ecx
jmp 0x431503
movzx esi, byte [esp + 0x13]
movzx ebp, bl
mov dword [esp + 0x80], esi
imul esi, ebp
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov al, byte [esp + 0x13]
sub al, dl
add al, bl
mov dword [esp + 0x8c], ebp
mov byte [esp + 0x1b], al
je 0x43149a
movzx edx, byte [esp + 0x10]
movzx eax, al
shl eax, 8
mov dword [esp + 0x5c], eax
mov ebx, edx
imul edx, esi
imul ebx, dword [esp + 0x80]
movzx eax, cl
imul eax, ebp
add eax, ebx
mov ebx, dword [esp + 0x5c]
shl eax, 8
sub eax, edx
cdq
idiv ebx
movzx edx, byte [esp + 0x11]
mov dword [esp + 0x5c], edx
mov byte [esp + 0x10], al
movzx eax, ch
mov ecx, ebp
mov ebp, dword [esp + 0x80]
imul eax, ecx
imul edx, ebp
add eax, edx
mov edx, dword [esp + 0x5c]
imul edx, esi
shl eax, 8
sub eax, edx
cdq
idiv ebx
movzx edx, byte [esp + 0x12]
mov byte [esp + 0x11], al
movzx eax, byte [esp + 0x56]
imul eax, ecx
mov ecx, edx
imul edx, esi
imul ecx, ebp
add eax, ecx
shl eax, 8
sub eax, edx
cdq
idiv ebx
mov byte [esp + 0x12], al
mov al, byte [esp + 0x1b]
mov byte [esp + 0x13], al
jmp 0x4314ff
mov al, bl
not al
movzx ebp, al
movzx eax, byte [esp + 0x10]
movzx edx, cl
imul eax, ebp
movzx esi, bl
imul edx, esi
add edx, eax
movzx eax, byte [esp + 0x56]
sar edx, 8
imul eax, esi
movzx ecx, ch
mov byte [esp + 0x10], dl
imul ecx, esi
movzx edx, byte [esp + 0x11]
imul edx, ebp
add ecx, edx
sar ecx, 8
mov byte [esp + 0x11], cl
movzx ecx, byte [esp + 0x12]
imul ecx, ebp
add eax, ecx
sar eax, 8
mov byte [esp + 0x12], al
mov al, byte [esp + 0x13]
cmp bl, al
ja 0x4314fb
mov bl, al
mov byte [esp + 0x13], bl
mov ebp, dword [esp + 0x10]
mov dword [edi], ebp
mov eax, dword [esp + 0x20]
mov ecx, 1
add dword [esp + 0x50], ecx
add eax, 4
add edi, 4
sub dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
jne 0x4312f0
mov eax, dword [esp + 0x14]
mov ecx, 1
sub dword [esp + 0x58], ecx
add dword [esp + 0x3c], ecx
sub dword [esp + 0x1c], ecx
add eax, ecx
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x14], eax
jl 0x43124c
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret 0x10