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

Disassembly:
sub esp, 0xf8
cmp dword [esp + 0x100], 0x19
push ebp
push esi
push edi
jg 0x1003721b
xor edi, edi
mov dword [esp + 0x10], edi
jmp 0x1003722a
mov eax, dword [esp + 0x110]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov edi, ecx
fld dword [0x100693a4]
xor eax, eax
xor esi, esi
fstp dword [esp + 0x24]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x54], esi
cmp eax, esi
je 0x10037277
mov ebp, dword [eax + 4]
mov ecx, dword [eax + 8]
lea ecx, [ebp + ecx*8]
jmp 0x1003727b
xor ebp, ebp
xor ecx, ecx
mov dword [esp + 0x1c], eax
xor eax, eax
mov edx, ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0xc], esi
cmp edi, esi
jne 0x100372d7
mov edx, dword [esp + 0x110]
pop edi
mov dword [edx], esi
pop esi
mov eax, 1
pop ebp
add esp, 0xf8
ret
cmp edi, esi
push ebx
jl 0x1003732a
lea ebx, [esp + 0x84]
push esi
call fcn.1003cb10
add esp, 4
mov dword [esp + esi*4 + 0x2c], eax
test eax, eax
je 0x10037584
push 1
push esi
push eax
call fcn.1003ca90
add esp, 0xc
test esi, esi
je 0x1003731e
push esi
push ebx
call fcn.10031180
add esp, 8
mov dword [esp + esi*4 + 0x58], eax
test eax, eax
je 0x10037584
inc esi
add ebx, 0xc
cmp esi, edi
jle 0x100372e3
mov edx, dword [esp + 0x1c]
test ebp, ebp
je 0x10037535
jmp 0x10037344
mov edx, dword [esp + 0x1c]
cmp byte [edx], 0
jne 0x10037463
mov eax, dword [esp + 0x10c]
mov ebx, dword [eax]
mov edi, ebx
imul edi, edi, 0x1e35a7bd
mov ecx, 0x20
sub ecx, dword [esp + 0x14]
add eax, 4
shr edi, cl
movzx ecx, bl
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x2c]
inc dword [eax + ecx*4 + 0x404]
mov ecx, dword [eax]
mov ebp, ebx
shr ebp, 8
and ebp, 0xff
inc dword [ecx + ebp*4]
mov edx, ebx
lea ecx, [ecx + ebp*4]
shr edx, 0x10
mov ecx, 1
mov esi, ebx
and edx, 0xff
add dword [eax + edx*4 + 4], ecx
shr esi, 0x18
add dword [eax + esi*4 + 0x804], ecx
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x10037431
mov ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [esp + ecx*4 + 0x84]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
cmp dword [ecx + edi*4], ebx
lea ecx, [ecx + edi*4]
jne 0x100373f4
mov ecx, dword [esp + eax*4 + 0x2c]
mov ecx, dword [ecx]
inc dword [ecx + edi*4 + 0x460]
lea ecx, [ecx + edi*4 + 0x460]
jmp 0x10037420
mov eax, dword [esp + eax*4 + 0x2c]
mov dword [ecx], ebx
movzx ecx, bl
inc dword [eax + ecx*4 + 0x404]
mov ecx, dword [eax]
inc dword [ecx + ebp*4]
lea ecx, [ecx + ebp*4]
mov ecx, 1
add dword [eax + edx*4 + 4], ecx
add dword [eax + esi*4 + 0x804], ecx
mov eax, dword [esp + 0x10]
sub dword [esp + 0x18], 0xc
dec eax
sar edi, 1
cmp eax, 1
mov dword [esp + 0x10], eax
jge 0x100373d0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add eax, 8
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x24]
jne 0x1003752a
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
xor ecx, ecx
cmp eax, ecx
jne 0x10037515
mov dword [esp + 0x1c], ecx
jmp 0x10037522
movzx ebp, word [edx + 2]
cmp ebp, 0x200
mov esi, dword [esp + 0x10c]
mov ebx, dword [esi]
mov dword [esp + 0x10], ebp
not ebx
jge 0x10037488
movsx edx, byte [ebp*2 + 0x1006da90]
jmp 0x1003749d
lea eax, [ebp - 1]
bsr edx, eax
lea ecx, [edx - 1]
sar eax, cl
mov dword [esp + 0x18], edx
and eax, 1
lea edx, [eax + edx*2]
xor eax, eax
test edi, edi
jl 0x100374c0
mov ecx, dword [esp + eax*4 + 0x2c]
mov ecx, dword [ecx]
inc dword [ecx + edx*4 + 0x400]
lea ecx, [ecx + edx*4 + 0x400]
inc eax
cmp eax, edi
jle 0x100374a3
lea esp, [esp]
mov eax, dword [esi]
cmp eax, ebx
je 0x100374fd
imul eax, eax, 0x1e35a7bd
mov ecx, 0x20
sub ecx, edi
shr eax, cl
cmp edi, 1
jl 0x100374fb
lea ecx, [edi + edi*2]
lea ecx, [esp + ecx*4 + 0x84]
mov edx, edi
mov ebx, dword [ecx]
mov ebp, dword [esi]
mov dword [ebx + eax*4], ebp
sub ecx, 0xc
sar eax, 1
sub edx, 1
jne 0x100374e6
mov ebp, dword [esp + 0x10]
mov ebx, dword [esi]
add esi, 4
sub ebp, 1
mov dword [esp + 0x10], ebp
jne 0x100374c0
mov dword [esp + 0x10c], esi
jmp 0x10037435
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x1c], ecx
lea ecx, [ecx + edx*8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
cmp dword [esp + 0x1c], 0
jne 0x10037340
xor esi, esi
test edi, edi
jl 0x1003757c
jmp 0x10037540
mov edx, dword [esp + esi*4 + 0x2c]
push edx
call fcn.1003ace0
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
add esp, 4
test esi, esi
je 0x10037566
fld dword [esp + 0x28]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10037575
mov eax, dword [esp + 0x114]
fstp dword [esp + 0x28]
mov dword [eax], esi
jmp 0x10037577
fstp st(0)
inc esi
cmp esi, edi
jle 0x10037540
mov dword [esp + 0x10], 1
xor esi, esi
test edi, edi
jl 0x100375b6
lea ebx, [esp + 0x84]
cmp dword [esp + esi*4 + 0x58], 0
je 0x100375a1
push ebx
call fcn.100311c0
add esp, 4
mov ecx, dword [esp + esi*4 + 0x2c]
push ecx
call fcn.1003a820
inc esi
add esp, 4
add ebx, 0xc
cmp esi, edi
jle 0x10037591
mov eax, dword [esp + 0x10]
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xf8
ret