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

Disassembly:
push ebp
push edi
mov ebp, eax
push esi
push ebx
mov edi, ecx
sub esp, 0x8c
mov ebx, dword [ebp]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], ebx
mov ebx, dword [ebp + 0x14]
lea edx, [eax + 1]
fld dword [esp + 0xb0]
imul edx, dword [ecx + 8]
mov dword [esp + 0x50], ebx
mov ebx, dword [ebp + 0x1c]
add edx, dword [ebp + 0xc]
mov dword [esp + 0x54], ebx
mov ebx, dword [ecx + 0x60]
movsx ebx, word [ebx + edx*2]
add ebx, dword [ecx + 0x64]
cmp eax, 0xffffffff
je 0xb3d160
movzx esi, byte [ebx]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x44], ecx
movzx edx, byte [ebx + esi]
add edx, 0xc
cmp edx, ecx
jge 0xb3d16e
cmp edi, 2
jle 0xb3d16e
mov esi, dword [esp + 0x40]
sar edi, 1
sub eax, 1
mov dword [esp + 0x3c], edi
shl edi, 2
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], edi
fstp dword [esp + 0x58]
add esi, edi
cmp dword [esp + 0xa4], 1
mov dword [esp + 0x48], esi
je 0xb3d4b3
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x44]
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], 0
add eax, 1
mov dword [esp + 0x14], ebx
sar eax, 1
mov esi, eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov eax, ebp
call fcn.00b3c4f0
fild dword [esp + 0x6c]
cmp dword [esp + 0xa4], 1
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
fld dword [0xe034ac]
mov edi, dword [esp + 0x7c]
fmul st(1), st(0)
mov dword [esp + 0x54], esi
fild dword [esp + 0x70]
fmulp st(1)
fld dword [esp + 0x58]
jle 0xb3d045
test esi, 0x3fff
je 0xb3d045
cmp esi, 0x2000
jle 0xb3d54d
mov ecx, 4
mov edx, eax
sub ecx, ebx
sar edx, cl
sub eax, edx
mov esi, dword [esp + 0xa0]
mov ebx, esi
sub ebx, eax
mov eax, ebx
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
cmp ebx, esi
jle 0xb3d05f
mov ebx, esi
mov eax, ebx
sar eax, 0x1f
not eax
and ebx, eax
mov eax, dword [ebp + 0x20]
sub esi, ebx
sub eax, edi
mov edi, eax
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0xa8]
test eax, eax
je 0xb3d5bc
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0xa8]
mov dword [esp + 0x50], eax
cmp ebx, esi
jl 0xb3d3f0
fxch st(1)
mov eax, dword [esp + 0xb4]
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp], ebx
fmul st(1), st(0)
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
fstp dword [esp + 0x58]
fstp dword [esp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, ebp
call fcn.00b3cee0
sub edi, dword [ebp + 0x20]
fld dword [esp + 0x58]
mov dword [esp + 0x40], eax
fld dword [esp + 0x5c]
sub ebx, edi
cmp ebx, 0x18
jle 0xb3d104
mov edi, dword [esp + 0x54]
test edi, edi
je 0xb3d104
lea esi, [esi + ebx - 0x18]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0xb4]
fmulp st(1)
mov edx, dword [esp + 0x48]
mov dword [esp], esi
mov ecx, edi
mov dword [esp + 4], edi
sar eax, cl
mov ecx, dword [esp + 0x3c]
fstp dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, ebp
call fcn.00b3cee0
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x40]
sar ecx, 1
shl eax, cl
or ebx, eax
jmp 0xb3d374
mov eax, dword [esp + 0xa0]
movzx esi, byte [ebx]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov edx, 6
xor ecx, ecx
sub eax, 1
mov dword [esp + 0x3c], eax
jmp 0xb3d189
sub edx, 1
mov ecx, eax
je 0xb3d1a0
lea eax, [ecx + esi + 1]
sar eax, 1
movzx edi, byte [ebx + eax]
cmp dword [esp + 0x3c], edi
jg 0xb3d182
sub edx, 1
mov esi, eax
jne 0xb3d189
test ecx, ecx
jne 0xb3d275
movzx eax, byte [ebx + esi]
sub eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jge 0xb3d2a0
test esi, esi
je 0xb3d2a0
mov edx, esi
mov ecx, esi
movzx edx, byte [ebx + edx]
mov eax, dword [ebp + 0x20]
add edx, 1
sub eax, edx
test eax, eax
mov dword [ebp + 0x20], eax
jns 0xb3d1fe
test ecx, ecx
jle 0xb3d215
lea esi, [esi]
add eax, edx
sub ecx, 1
mov dword [ebp + 0x20], eax
je 0xb3d2a0
movzx edx, byte [ebx + ecx]
add edx, 1
sub eax, edx
test eax, eax
mov dword [ebp + 0x20], eax
js 0xb3d1e0
cmp ecx, 7
jle 0xb3d215
mov eax, ecx
sar ecx, 3
and eax, 7
sub ecx, 1
add eax, 8
shl eax, cl
mov ecx, eax
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0xb3d381
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 4]
fstp dword [esp + 0x18]
mov dword [esp + 8], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00b4b450
add esp, 0x8c
mov ebx, eax
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [ebx + ecx]
mov edi, dword [esp + 0x3c]
mov edx, ecx
sub edi, eax
movzx eax, byte [ebx + esi]
sub eax, dword [esp + 0x3c]
cmp edi, eax
jle 0xb3d1c6
test esi, esi
jne 0xb3d1c2
lea esi, [esi]
mov eax, dword [ebp + 4]
test eax, eax
je 0xb3d370
movzx ecx, byte [esp + 0xa4]
mov ebx, dword [esp + 0xb4]
mov edx, 1
shl edx, cl
sub edx, 1
and ebx, edx
test ebx, ebx
mov dword [esp + 0xb4], ebx
je 0xb3d3c7
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0xb3d576
mov edx, dword [esp + 0x48]
test edx, edx
jle 0xb3d33c
mov eax, dword [ebp + 0x28]
mov ecx, dword [esp + 0x40]
xor edx, edx
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0xa8]
fld dword [0xe034a4]
lea esi, [esi]
lea edi, [edi]
imul eax, eax, 0x19660d
fld st(0)
add eax, 0x3c6ef35f
test ah, 0x80
je 0xb3d32a
fstp st(0)
fld dword [0xe034a8]
fadd dword [edi + edx*4]
fstp dword [ecx + edx*4]
add edx, 1
cmp esi, edx
jne 0xb3d310
fstp st(0)
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 0x2c]
fstp dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00b4b780
add esp, 0x8c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
xor ebx, ebx
add esp, 0x8c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x54]
fstp dword [esp + 0x18]
mov dword [esp + 8], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00b4b650
add esp, 0x8c
mov ebx, eax
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
fstp st(0)
mov eax, dword [esp + 0x48]
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.msvcrt.dll_memset
jmp 0xb3d374
fxch st(2)
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0xb4]
fstp dword [esp + 0x5c]
mov dword [esp], esi
fmul st(1)
fxch st(1)
mov ecx, edx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x48]
sar eax, cl
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
fstp dword [esp + 0x58]
mov dword [esp + 0xc], eax
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
mov eax, ebp
call fcn.00b3cee0
sub edi, dword [ebp + 0x20]
mov ecx, dword [esp + 0xa4]
fld dword [esp + 0x58]
sar ecx, 1
fld dword [esp + 0x5c]
sub esi, edi
shl eax, cl
cmp esi, 0x18
mov dword [esp + 0x48], eax
jle 0xb3d46a
cmp dword [esp + 0x54], 0x4000
je 0xb3d46a
lea ebx, [ebx + esi - 0x18]
mov eax, dword [esp + 0xb4]
fmulp st(1)
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp], ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
fstp dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov eax, ebp
call fcn.00b3cee0
mov ebx, dword [esp + 0x48]
or ebx, eax
jmp 0xb3d374
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x40]
mov dword [esp], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 1
mov edx, eax
add eax, eax
and edx, 1
or eax, edx
lea edx, [esp + 0x68]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
lea eax, [esp + 0xa0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, ebp
call fcn.00b3c4f0
fild dword [esp + 0x6c]
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x7c]
fld dword [0xe034ac]
mov dword [esp + 0x4c], 1
mov dword [esp + 0x54], esi
fmul st(1), st(0)
fild dword [esp + 0x70]
fmulp st(1)
fld dword [esp + 0x58]
jmp 0xb3d045
mov esi, dword [esp + 0x3c]
mov ecx, 5
sub ecx, dword [esp + 0x44]
lea edx, [esi*8]
sar edx, cl
add eax, edx
xor edx, edx
test eax, eax
setg dl
sub edx, 1
and eax, edx
jmp 0xb3d045
mov esi, dword [esp + 0x48]
test esi, esi
jle 0xb3d5c9
mov edi, dword [esp + 0x40]
mov eax, dword [ebp + 0x28]
lea ebx, [edi + esi*4]
mov ecx, edi
lea esi, [esi]
imul eax, eax, 0x19660d
add ecx, 4
add eax, 0x3c6ef35f
mov esi, eax
sar esi, 0x14
mov dword [esp + 0x3c], esi
fild dword [esp + 0x3c]
fstp dword [ecx - 4]
cmp ebx, ecx
jne 0xb3d590
mov dword [ebp + 0x28], eax
mov ebx, edx
jmp 0xb3d33c
mov dword [esp + 0x50], 0
jmp 0xb3d092
mov ebx, edx
jmp 0xb3d33c