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

Disassembly:
sub esp, 0xb0
push ebx
mov ebx, dword [0x1027c41c]
push ebp
push esi
push edi
mov eax, dword [ebx + 0x1b48]
mov edi, ecx
mov byte [esp + 0x16], dl
mov dword [esp + 0x3c], edi
mov dword [esp + 0x4c], ebx
mov byte [eax + 0x84], 1
mov ebp, dword [ebx + 0x1b48]
cmp byte [ebp + 0x87], 0
jne 0x100386aa
mov eax, dword [esp + 0xc4]
shr eax, 1
and al, 1
mov dword [esp + 0x18], eax
je 0x10038426
cmp dword [ebp + 0x194], 0
je 0x10038426
call fcn.100755c3
mov edx, dword [esp + 0xd0]
lea ecx, [esp + 0x90]
call fcn.10004c72
push edi
lea ecx, [esp + 0x7c]
mov esi, eax
call fcn.10004010
push esi
push eax
push dword [esp + 0x44]
lea ecx, [esp + 0x6c]
call fcn.1002c307
cmp dword [esp + 0x74], 0xf
lea eax, [esp + 0x60]
push 0
cmova eax, dword [esp + 0x64]
mov ecx, ebp
push eax
call fcn.100493dd
lea ecx, [esp + 0x60]
mov dword [esp + 0x20], eax
call fcn.10001483
lea ecx, [esp + 0x78]
call fcn.10001483
lea ecx, [esp + 0x90]
call fcn.10001483
movss xmm0, dword [ebx + 0x1a08]
xorps xmm1, xmm1
call fcn.10046146
mov edx, dword [ebx + 0x1a04]
movaps xmm2, xmm0
push ecx
mov dword [esp], 0xbf800000
lea ecx, [esp + 0x2c]
push 1
push 0
push edi
call fcn.1004b9d5
mov esi, dword [esp + 0xd8]
add esp, 0x10
xorps xmm0, xmm0
movss xmm1, dword [esi + 4]
ucomiss xmm1, xmm0
movss dword [esp + 0x30], xmm1
lahf
test ah, 0x44
jp 0x100384ea
movss xmm1, dword [esp + 0x2c]
movss dword [esp + 0x30], xmm1
movss xmm7, dword [esi]
ucomiss xmm7, xmm0
lahf
test ah, 0x44
jp 0x100384fd
movss xmm7, dword [esp + 0x28]
movss dword [esp + 0x38], xmm1
lea ecx, [esp + 0x34]
movss xmm1, dword [ebp + 0xd0]
movss dword [esp + 0x48], xmm1
movss xmm1, dword [ebp + 0xd4]
addss xmm1, dword [ebp + 0x100]
movss dword [esp + 0x34], xmm7
movss dword [esp + 0x44], xmm1
xorps xmm1, xmm1
call fcn.100506af
cmp byte [esp + 0x18], 0
je 0x10038552
movss xmm5, dword [ebp + 0x230]
movss xmm1, dword [ebp + 0x238]
jmp 0x10038560
movss xmm5, dword [esp + 0x48]
movss xmm1, dword [ebp + 0x228]
movss xmm0, dword [esi]
ucomiss xmm0, dword [0x10273d1c]
lahf
test ah, 0x44
jnp 0x1003857e
test dword [esp + 0xc4], 0x800000
je 0x1003858b
movaps xmm7, xmm1
subss xmm7, xmm5
maxss xmm7, dword [esp + 0x28]
test dword [esp + 0xc4], 0x4000000
addss xmm7, xmm5
movss xmm0, dword [esp + 0x44]
movaps xmm6, xmm0
movss dword [esp + 0x50], xmm5
addss xmm6, dword [esp + 0x30]
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x58], xmm7
movss dword [esp + 0x5c], xmm6
jne 0x10038635
movss xmm3, dword [ebx + 0x1568]
movss xmm4, dword [ebx + 0x156c]
movaps xmm0, xmm3
mulss xmm0, dword [0x10273e38]
cvttss2si eax, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x10273e38]
movd xmm2, eax
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x44]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm3, xmm2
subss xmm4, xmm1
subss xmm5, xmm2
subss xmm0, xmm1
addss xmm3, xmm7
addss xmm4, xmm6
movss dword [esp + 0x50], xmm5
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x58], xmm3
movss dword [esp + 0x5c], xmm4
mov edi, dword [esp + 0xc4]
lea ecx, [esp + 0x50]
mov edx, dword [esp + 0x20]
push 0
and edi, 8
je 0x10038669
mov esi, dword [ebp + 0x1a8]
mov eax, esi
or eax, 0x14
mov dword [ebp + 0x1a8], eax
call fcn.100507f6
mov dword [ebp + 0x1a8], esi
jmp 0x1003866e
call fcn.100507f6
pop ecx
test al, al
jne 0x100386b7
cmp byte [esp + 0x18], al
je 0x10038687
cmp dword [ebp + 0x194], 0
je 0x10038687
call fcn.1007562e
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x38]
lea esi, [ebx + 0x1c80]
push eax
mov ecx, esi
call fcn.10030aaf
mov eax, dword [esp + 0x34]
cmp eax, dword [esi]
je 0x100386aa
and dword [eax + 0x14], 0
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov ecx, dword [esp + 0xc4]
mov esi, dword [esp + 0xc4]
mov eax, esi
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x10
test dword [esp + 0xc4], 0x200000
push 0
cmove edx, ecx
mov ecx, edx
or ecx, 0x80
test esi, 0x400000
cmove ecx, edx
mov edx, ecx
or edx, 0x4000
test edi, edi
cmove edx, ecx
mov ecx, edx
or ecx, 0x120
test al, 4
movzx eax, byte [esp + 0x1a]
cmove ecx, edx
mov edx, esi
and edx, 0x10
test edi, edi
pop edi
cmove edi, eax
mov dword [esp + 0x34], edx
mov eax, ecx
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x20]
or eax, 0x1000
test edx, edx
cmove eax, ecx
push eax
lea eax, [esp + 0x23]
push eax
lea eax, [esp + 0x1f]
push eax
lea eax, [esp + 0x5c]
push edi
push eax
call fcn.10065720
mov cl, al
add esp, 0x14
mov byte [esp + 0x16], cl
test cl, cl
jne 0x10038769
cmp byte [esp + 0x17], al
je 0x100387b2
test esi, 0x2000000
je 0x100387b2
cmp byte [ebx + 0x1cdb], 0
jne 0x100387a9
cmp dword [ebx + 0x1c88], ebp
jne 0x100387a9
mov eax, dword [ebx + 0x1cd0]
cmp eax, dword [ebp + 0x13c]
jne 0x100387a9
mov byte [ebx + 0x1cda], 1
mov ecx, edi
push dword [ebp + 0x148]
mov edx, dword [ebp + 0x13c]
call fcn.10051f81
mov cl, byte [esp + 0x1a]
add esp, 4
test cl, cl
je 0x100387b2
call fcn.10049700
cmp dword [esp + 0x34], 0
je 0x100387be
call fcn.1004bf4b
cmp byte [esp + 0x1f], 0
je 0x100387d2
test esi, 0x1000000
je 0x100387d2
mov byte [esp + 0x17], 1
cmp byte [esp + 0x18], 0
je 0x100387e7
cmp dword [ebp + 0x194], 0
je 0x100387e7
call fcn.1007562e
lea eax, [esp + 0x20]
add ebx, 0x1c80
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x38], ebx
push eax
mov ecx, ebx
call fcn.10030aaf
mov esi, dword [esp + 0x24]
cmp esi, dword [ebx]
je 0x10038811
movss xmm2, dword [esi + 0x14]
jmp 0x10038814
xorps xmm2, xmm2
mov edx, dword [0x1027c41c]
movaps xmm1, xmm2
mov eax, dword [edx + 0x1b48]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x2c], eax
movss xmm0, dword [esp + 0x2c]
comiss xmm0, dword [esp + 0xcc]
mov dword [esp + 0x28], ecx
jb 0x1003894a
movss xmm0, dword [edx + 0x18]
lea eax, [esp + 0x18]
mulss xmm0, dword [0x10274220]
lea ecx, [esp + 0x24]
and dword [esp + 0x24], 0
movss xmm1, dword [0x1027412c]
mov dword [esp + 0x28], 0x437f0000
addss xmm2, xmm0
comiss xmm2, dword [0x10273d1c]
movss dword [esp + 0x18], xmm2
cmovae ecx, eax
lea eax, [esp + 0x28]
comiss xmm1, xmm2
cmovae eax, ecx
cmp byte [esp + 0x30], 0
movss xmm0, dword [eax]
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x24], xmm0
je 0x100388b5
mov ecx, dword [0x1027d044]
call fcn.10050070
movss xmm0, dword [esp + 0x18]
mov ebx, dword [ebp + 0x294]
movaps xmm1, xmm0
mulss xmm1, dword [0x10273d58]
xor ecx, ecx
call fcn.100483d1
movss xmm0, dword [esp + 0x48]
mov edi, eax
addss xmm0, dword [0x10273f8c]
mov eax, dword [esp + 0x4c]
xorps xmm1, xmm1
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [eax + 0x1a08]
call fcn.10046146
push 0
push ecx
and dword [esp], 0
lea eax, [esp + 0x30]
push 0
push dword [esp + 0x48]
movaps xmm2, xmm0
mov ecx, ebx
push edi
push eax
mov eax, dword [esp + 0x64]
push dword [eax + 0x1a04]
call fcn.1005e4e0
cmp byte [esp + 0x30], 0
je 0x10038936
call fcn.100500c0
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
movss xmm1, dword [esp + 0x24]
movss xmm2, dword [esp + 0x18]
cmp esi, dword [ebx]
je 0x10038955
movss dword [esi + 0x14], xmm2
jmp 0x10038979
comiss xmm1, dword [0x10273d1c]
jbe 0x10038979
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], edi
push eax
lea eax, [esp + 0x2c]
movss dword [esp + 0x44], xmm2
push eax
mov ecx, ebx
call fcn.10030ba4
mov bl, byte [esp + 0x16]
test bl, bl
je 0x100389a2
test dword [ebp + 8], 0x4000000
je 0x100389a2
test byte [esp + 0xc4], 1
jne 0x100389a2
test byte [ebp + 0x1a8], 0x20
jne 0x100389a2
call fcn.1005182a
cmp dword [esp + 0xd4], 0
je 0x10038af2
or edi, 0xffffffff
cmp dword [esp + 0xd0], edi
jle 0x10038af2
mov esi, dword [0x1027c494]
cmp byte [esi + 0x2be4], 0
je 0x10038af2
xor ecx, ecx
call fcn.10049767
test al, al
je 0x10038af2
mov eax, dword [esi + 0x20]
mov esi, dword [eax]
jmp 0x10038a04
mov ecx, dword [esi + 0x44]
add ecx, dword [esp + 0xd0]
cmp dword [esp + 0xd4], ecx
jne 0x10038a02
cmp byte [esi + 0x59], 0
jne 0x10038a0d
mov esi, dword [esi]
cmp esi, eax
jne 0x100389e9
jmp 0x10038af2
cmp byte [0x1027d031], 0
je 0x10038a28
movss xmm1, dword [0x10273ea0]
push 2
pop ecx
call fcn.100483d1
mov edi, eax
push 4
mov edx, edi
pop ecx
call fcn.1004848e
xor ecx, ecx
mov dword [esp + 0x3c], 0x41000000
lea edx, [esp + 0x3c]
mov dword [esp + 0x40], 0x40c00000
inc ecx
call fcn.100485c8
mov edx, dword [esp + 0xd0]
lea ecx, [esp + 0xa8]
call fcn.10004c72
push ecx
lea edx, [esi + 0x2c]
mov edi, eax
lea ecx, [esp + 0x94]
call fcn.10030aee
pop ecx
push edi
push eax
push dword [esp + 0x44]
lea ecx, [esp + 0x84]
call fcn.1002c307
push 1
push 0x10270f34
lea ecx, [esp + 0x80]
call fcn.100040a2
push eax
lea ecx, [esp + 0x64]
call fcn.10003fda
cmp dword [esp + 0x74], 0xf
lea eax, [esp + 0x60]
cmova eax, dword [esp + 0x60]
push eax
call fcn.10051550
pop ecx
lea ecx, [esp + 0x60]
call fcn.10001483
lea ecx, [esp + 0x78]
call fcn.10001483
lea ecx, [esp + 0x90]
call fcn.10001483
lea ecx, [esp + 0xa8]
call fcn.10001483
xor ecx, ecx
inc ecx
call fcn.10048636
xor ecx, ecx
inc ecx
call fcn.10048529
mov al, bl
jmp 0x100386ac