Function at 0x4309f0
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 0x43107f
mov esi, dword [eax + 0x14]
cmp esi, ebp
je 0x43107f
cmp dword [eax + 0x18], ebp
je 0x43107f
mov eax, dword [edx + 8]
cmp eax, dword [edx]
jle 0x43107f
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 4]
jle 0x43107f
mov eax, dword [ecx + 8]
mov ebx, dword [ecx]
cmp eax, ebx
jle 0x43107f
mov edx, dword [ecx + 0xc]
mov edi, dword [ecx + 4]
cmp edx, edi
jle 0x43107f
cmp ebx, ebp
jl 0x43107f
cmp edi, ebp
jl 0x43107f
mov edi, dword [esp + 0xa8]
cmp eax, dword [edi + 0x14]
jg 0x43107f
cmp edx, dword [edi + 0x18]
jg 0x43107f
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.00430620
mov eax, dword [esp + 0x4c]
add esp, 0xc
test eax, eax
jl 0x43107f
mov ecx, dword [esp + 0x44]
test ecx, ecx
jl 0x43107f
mov edi, dword [esp + 0x48]
cmp edi, esi
jg 0x43107f
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xa0]
cmp edx, dword [ebx + 0x18]
jg 0x43107f
cmp edi, eax
jle 0x43107f
cmp edx, ecx
jle 0x43107f
cmp dword [esp + 0x64], ebp
jl 0x43107f
mov ebp, dword [esp + 0x68]
test ebp, ebp
jl 0x43107f
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x14]
cmp dword [esp + 0x6c], edx
jg 0x43107f
mov edx, dword [esp + 0xa8]
mov edx, dword [edx + 0x18]
cmp dword [esp + 0x70], edx
jg 0x43107f
mov ebx, dword [esp + 0x64]
cmp dword [esp + 0x6c], ebx
jle 0x43107f
cmp dword [esp + 0x70], ebp
jle 0x43107f
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 0x430bb1
mov eax, edi
test eax, eax
jge 0x430bbf
mov dword [esp + 0x34], 0
jmp 0x430bc9
cmp esi, edi
jl 0x430bc5
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 0x430bdf
mov eax, edx
test eax, eax
jge 0x430bed
mov dword [esp + 0x38], 0
jmp 0x430bf9
cmp ecx, edx
mov eax, ecx
jl 0x430bf5
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 0x430c2f
mov eax, edx
test eax, eax
jge 0x430c37
xor eax, eax
jmp 0x430c3f
cmp ecx, edx
mov eax, ecx
jl 0x430c3f
mov eax, edx
mov edx, dword [esi + 0x18]
mov ebp, dword [esp + 0x70]
cmp edx, ebp
mov ecx, edx
jl 0x430c4e
mov ecx, ebp
test ecx, ecx
jge 0x430c56
xor ecx, ecx
jmp 0x430c5e
cmp edx, ebp
mov ecx, edx
jl 0x430c5e
mov ecx, ebp
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x34], edx
jle 0x43107f
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x38], edx
jle 0x43107f
cmp eax, ebx
jle 0x43107f
cmp ecx, dword [esp + 0x44]
jle 0x43107f
cmp dword [esi + 0x4c], 0
je 0x43107f
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 [0x4f11e0]
fabs
fld dword [esp + 0x24]
fld st(0)
fld qword [0x4ec2e8]
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 0x430d21
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 0x430d58
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 0x43107b
mov dword [esp + 0x3c], 0
mov dword [esp + 0x58], edx
jmp 0x430d8e
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 0x43107b
cmp dword [esp + 0x28], 0
jl 0x43107b
cmp dword [esp + 0x78], 0
je 0x430db9
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], eax
jmp 0x430dd1
fild dword [esp + 0x3c]
fmul st(2)
call fcn.004c9320
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 0x431056
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 0x430e3c
fild dword [esp + 0x50]
fmul st(1)
call fcn.004c9320
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 0x430e6c
mov byte [edi], dl
mov byte [edi + 1], bl
mov byte [edi + 2], cl
mov byte [edi + 3], al
jmp 0x431035
test al, al
je 0x431035
cmp al, 0xff
jne 0x430e88
mov byte [edi], dl
mov byte [edi + 1], bl
mov byte [edi + 2], cl
mov byte [edi + 3], al
jmp 0x431035
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 0x431033
cmp bl, 0xff
jne 0x430ee1
mov ebp, ecx
jmp 0x431033
mov eax, esi
sub eax, 0
je 0x430fd0
sub eax, 1
je 0x430f01
sub eax, 1
jne 0x431033
mov ebp, ecx
jmp 0x431033
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 0x430fca
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 0x43102f
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 0x43102b
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 0x430e20
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 0x430d7c
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x8c
ret 0x10