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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov ecx, dword [0x10376020]
xor ecx, ebp
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x80]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov edx, 0x1030ee57
push 1
call fcn.00332580
add esp, 4
mov ebx, eax
test al, al
jne 0x332535
lea ecx, [esp + 0x80]
mov edx, 0x1030ee52
push 1
call fcn.00332580
add esp, 4
xor eax, eax
inc eax
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x84]
cmp edx, 3
je 0x331f40
cmp edx, 1
je 0x33227e
test edx, edx
je 0x332069
cvtsi2sd xmm0, dword [esp + 0x34]
movsd qword [esp + 0x48], xmm0
xor edi, edi
xor ebx, ebx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x80]
mov dword [esp + 4], edx
lea eax, [esi + edx]
mov dword [esp + 0x1c], eax
xor edi, edi
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x10], esi
movsx ecx, byte [esi + edi]
mov eax, ecx
add al, 0xc6
cmp al, 0xf6
jb 0x331f6b
mov eax, 0xcccccccc
cmp eax, edx
mov eax, 0xccccccc
sbb eax, ebx
jl 0x332069
mov eax, edx
mov edx, 0xa
mul edx
add ecx, 0xffffffd0
lea ebx, [ebx + ebx*4]
lea esi, [edx + ebx*2]
mov edx, ecx
xor ebx, ebx
dec ebx
xor edx, ebx
cmp edx, eax
mov edx, eax
mov eax, 0x7fffffff
sbb eax, esi
jl 0x332069
mov ebx, esi
add edx, ecx
adc ebx, 0
inc edi
cmp dword [esp + 4], edi
mov esi, dword [esp + 0x10]
jne 0x331edb
jmp 0x33253d
mov eax, dword [esp + 0x80]
movzx ecx, word [eax]
xor cx, word [0x1030ee47]
mov al, byte [eax + 2]
xor al, byte [0x1030ee49]
movzx eax, al
or ax, cx
jne 0x331ea7
jmp 0x33229d
lea eax, [esi + edi]
mov dword [esp + 0x24], eax
mov dword [esp + 0x80], eax
mov esi, edi
mov edi, dword [esp + 4]
sub edi, esi
mov dword [esp + 0x84], edi
mov eax, edx
mov byte [esp + 0x28], dl
shrd edx, ebx, 8
shr ebx, 8
cmp cl, 0x2e
je 0x332411
test esi, esi
je 0x332069
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0
mov edi, edx
lea esi, [esp + 0x80]
mov ecx, esi
mov edx, 0x10310018
push 2
call fcn.00332580
add esp, 4
test al, al
jne 0x3320a0
mov ecx, esi
mov edx, 0x1031001b
push 2
call fcn.00332580
add esp, 4
test al, al
jne 0x332099
mov ecx, esi
mov edx, 0x1031001e
push 2
call fcn.00332580
add esp, 4
test al, al
jne 0x332092
mov ecx, esi
mov edx, 0x1030f59e
push 1
call fcn.00332580
add esp, 4
test al, al
jne 0x332084
mov ecx, esi
mov edx, 0x1030f5a2
push 1
call fcn.00332580
add esp, 4
test al, al
jne 0x33208b
mov ecx, esi
mov edx, 0x1030f59c
push 1
call fcn.00332580
add esp, 4
test al, al
jne 0x33207d
mov ecx, esi
mov edx, 0x1030f5a4
push 1
call fcn.00332580
add esp, 4
test al, al
jne 0x332076
mov esi, dword [ebp + 8]
mov byte [esi], 0
xor eax, eax
jmp 0x3321fa
mov eax, 0x10322930
jmp 0x3320a5
mov eax, 0x10322920
jmp 0x3320a5
mov eax, 0x10322900
jmp 0x3320a5
mov eax, 0x10322910
jmp 0x3320a5
mov eax, 0x103228f0
jmp 0x3320a5
mov eax, 0x103228e0
jmp 0x3320a5
mov eax, 0x103228d0
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
shld ebx, edi, 8
shl edi, 8
movzx ecx, byte [esp + 0x28]
or ecx, edi
mov eax, ecx
or eax, ebx
je 0x332215
mov edi, dword [esp + 0x34]
mov esi, edi
sar esi, 0x1f
mov eax, ecx
mul edi
mov dword [esp + 4], eax
imul esi, ecx
add esi, edx
imul ebx, edi
add ebx, esi
mov ecx, dword [esp + 0x20]
mov eax, ecx
sar eax, 0x1f
mov edx, ecx
xor edx, eax
mov edi, dword [esp + 0x24]
xor edi, eax
sub edi, eax
sbb edx, eax
mov dword [esp + 0x44], edx
mov eax, ebx
sar eax, 0x1f
xor ecx, ebx
xor ebx, eax
mov esi, dword [esp + 4]
xor esi, eax
sub esi, eax
sbb ebx, eax
mov eax, edi
mul esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
mov eax, ecx
shr eax, 0x1f
mov dword [esp + 4], esi
cmp eax, esi
mov esi, dword [esp + 0x44]
mov ecx, 0
sbb ecx, ebx
jae 0x33215f
xor ecx, ecx
dec ecx
add eax, ecx
mov ecx, 0x7fffffff
adc ecx, 0
push ebx
push dword [esp + 8]
push ecx
push eax
call fcn.002c7fe0
cmp eax, edi
sbb edx, esi
jb 0x33221f
imul edi, ebx
imul esi, dword [esp + 4]
mov ebx, dword [esp + 0x2c]
add ebx, esi
add ebx, edi
mov edx, dword [esp + 0x30]
mov eax, edx
neg eax
mov ecx, 0
sbb ecx, ebx
cmp dword [esp + 0x28], 0
cmovns ecx, ebx
cmovns eax, edx
xor edx, edx
dec edx
add edx, eax
mov esi, 0x7fffffff
adc esi, ecx
add edx, 2
adc esi, 0
cmp edx, 2
sbb esi, 0
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
jb 0x332244
add esi, eax
adc edi, ecx
seto dl
mov eax, edi
sar eax, 0x1f
lea ecx, [eax - 0x80000000]
test dl, dl
cmove eax, esi
test dl, dl
cmove ecx, edi
mov esi, dword [esp + 0x10]
mov edx, esi
mov edi, dword [esp + 0x1c]
or edx, edi
jne 0x3322c6
mov edi, eax
mov ebx, ecx
mov edx, dword [esp + 0x84]
test edx, edx
jne 0x331eb7
mov esi, dword [ebp + 8]
mov dword [esi], edi
mov dword [esi + 4], ebx
mov al, 1
mov byte [esi + 8], al
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.002a5ceb
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
jmp 0x3321cb
xor edx, edx
dec edx
mov eax, edx
add eax, 1
mov ecx, 0x7fffffff
adc ecx, 0
cmp dword [esp + 0x28], 0
cmovns eax, edx
mov edx, 0x7fffffff
cmovns ecx, edx
jmp 0x332189
xor edx, edx
dec edx
add edx, esi
mov esi, 0x7fffffff
adc esi, edi
add edx, 2
adc esi, 0
xor edi, edi
xor ebx, ebx
inc ebx
cmp ebx, edx
sbb edi, esi
jb 0x3321cb
mov edx, dword [esp + 0xc]
xor edx, eax
mov esi, dword [esp + 8]
xor esi, ecx
or esi, edx
je 0x3321cb
jmp 0x332532
mov eax, dword [esp + 0x80]
cmp byte [eax], 0x30
jne 0x331ea7
xor eax, eax
mov esi, dword [ebp + 8]
mov dword [esi + 4], eax
mov dword [esi], eax
jmp 0x3321f8
xor eax, eax
xor ecx, ecx
dec ecx
mov edx, ecx
add edx, 1
adc eax, 0x7fffffff
test bl, bl
cmove edx, ecx
mov ecx, 0x7fffffff
cmovne ecx, eax
mov esi, dword [ebp + 8]
mov dword [esi], edx
mov dword [esi + 4], ecx
jmp 0x3321f8
movd xmm0, esi
movd xmm1, edi
movss xmm2, dword [esp + 0x18]
movss xmm3, dword [esp + 0x14]
movss xmm4, dword [esp + 0x24]
movss xmm5, dword [esp + 0x20]
punpckldq xmm0, xmm1
movq qword [esp + 0x78], xmm0
fild qword [esp + 0x78]
fstp qword [esp + 0x70]
unpcklps xmm2, xmm3
movsd xmm0, qword [esp + 0x70]
movlps qword [esp + 0x68], xmm2
mulsd xmm0, qword [esp + 0x48]
fild qword [esp + 0x68]
fstp qword [esp + 0x60]
divsd xmm0, qword [esp + 0x60]
unpcklps xmm4, xmm5
movlps qword [esp + 0x58], xmm4
fild qword [esp + 0x58]
fstp qword [esp + 0x50]
mulsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [0x1030cfe0]
ucomisd xmm1, xmm0
jb 0x332366
maxsd xmm0, qword [0x1030cfe8]
movsd qword [esp + 0x38], xmm0
fld qword [esp + 0x38]
fisttp qword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
jmp 0x33238d
xor esi, esi
ucomisd xmm0, qword [0x1030cfe8]
mov edi, 0
mov edx, 0x7fffffff
cmovae edi, edx
mov dword [esp + 8], edi
mov edx, 0xffffffff
cmovae esi, edx
mov dword [esp + 0xc], esi
xor edx, edx
dec edx
add edx, dword [esp + 0xc]
mov esi, 0x7fffffff
adc esi, dword [esp + 8]
add edx, 2
adc esi, 0
cmp edx, 2
sbb esi, 0
jb 0x3323d0
add eax, dword [esp + 0xc]
adc ecx, dword [esp + 8]
seto dl
mov edi, ecx
sar edi, 0x1f
lea ebx, [edi - 0x80000000]
test dl, dl
cmove edi, eax
test dl, dl
cmove ebx, ecx
jmp 0x3321e1
xor edx, edx
dec edx
add edx, eax
mov esi, 0x7fffffff
adc esi, ecx
add edx, 2
adc esi, 0
xor edi, edi
xor ebx, ebx
inc ebx
cmp ebx, edx
sbb edi, esi
jae 0x3323fa
mov edi, dword [esp + 0xc]
mov ebx, dword [esp + 8]
jmp 0x3321e1
mov edi, dword [esp + 0xc]
xor eax, edi
mov ebx, dword [esp + 8]
xor ecx, ebx
or ecx, eax
je 0x3321e1
int3
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x10]
add eax, esi
inc eax
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 4]
dec ebx
mov dword [esp + 4], esi
sub ebx, esi
jne 0x3324a2
xor ebx, ebx
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ebx
cmp dword [esp + 4], 0
jne 0x332489
mov eax, dword [esp + 0x18]
xor eax, 1
or eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
je 0x332069
jmp 0x331fc5
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
jmp 0x331fc5
xor ebx, ebx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
jmp 0x332452
add dword [esp + 0x24], edi
mov dword [esp + 0x14], 0
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
jmp 0x3324d2
cmp al, 0xf6
jb 0x332452
inc dword [esp + 0x20]
dec ebx
je 0x332496
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax]
mov eax, ecx
add al, 0xc6
cmp al, 0xf6
jb 0x3324c7
mov edx, 0xcccccccc
cmp edx, dword [esp + 0x18]
mov edx, 0xccccccc
sbb edx, dword [esp + 0x14]
jl 0x3324c7
mov eax, dword [esp + 0x10]
mov esi, 0xa
mul esi
add ecx, 0xffffffd0
mov edi, dword [esp + 0x1c]
add edi, edi
add eax, ecx
mov dword [esp + 0x10], eax
lea edi, [edi + edi*4]
adc edi, edx
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x18]
mul esi
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jmp 0x3324cb
int3
xor eax, eax
dec eax
jmp 0x331e82
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x80], eax
mov eax, ebx
shld eax, edx, 0x18
mov dword [esp + 0x84], 0
shr ebx, 8
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], 0
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, edx
mov byte [esp + 0x28], dl
mov edx, eax
jmp 0x331fbd