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

Disassembly:
sub esp, 0x6c
push ebx
push ebp
push esi
mov esi, dword [0x100b7db4]
mov ebx, ecx
push edi
mov byte [esp + 0x17], dl
mov dword [esp + 0x4c], ebx
mov eax, dword [esi + 0x124c]
mov byte [eax + 0xb0], 1
mov edi, dword [esi + 0x124c]
cmp byte [edi + 0xb3], 0
jne 0x10049e6e
mov ecx, dword [edi + 0xec]
xor edx, edx
mov eax, dword [edi + 0xf4]
push dword [eax + ecx*4 - 4]
mov ecx, ebx
call fcn.10019c90
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, ebx
cmp ebx, 0xffffffff
jae 0x10049816
nop
mov dl, byte [ecx]
test dl, dl
je 0x10049816
cmp dl, 0x23
jne 0x10049810
cmp byte [ecx + 1], dl
je 0x10049816
inc ecx
cmp ecx, 0xffffffff
jb 0x10049800
movss xmm1, dword [esi + 0xfb4]
xorps xmm0, xmm0
cmp ebx, ecx
jne 0x1004982a
xorps xmm2, xmm2
jmp 0x10049873
movss xmm3, dword [0x100a7114]
lea eax, [esp + 0x44]
push 0
push ecx
push ebx
push ecx
mov ecx, dword [esi + 0xfb0]
movaps xmm2, xmm1
mov dword [esp], 0xbf800000
push eax
call fcn.1003cd50
movss xmm0, dword [esp + 0x44]
addss xmm0, dword [0x100a6fc0]
movss xmm1, dword [esp + 0x48]
cvttss2si eax, xmm0
xorps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov ebp, dword [esp + 0x84]
movss dword [esp + 0x54], xmm1
movss dword [esp + 0x50], xmm2
movss xmm3, dword [ebp + 4]
ucomiss xmm3, xmm0
movss dword [esp + 0x40], xmm3
lahf
test ah, 0x44
jp 0x100498a3
movaps xmm3, xmm1
movss dword [esp + 0x40], xmm1
movss xmm1, dword [ebp]
ucomiss xmm1, xmm0
movss dword [esp + 0x30], xmm1
lahf
test ah, 0x44
jp 0x100498c0
movaps xmm1, xmm2
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x20], xmm1
lea ecx, [esp + 0x20]
movss xmm1, dword [edi + 0xf8]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [edi + 0xfc]
movss dword [esp + 0x5c], xmm1
addss xmm1, dword [edi + 0x130]
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x44], xmm1
xorps xmm1, xmm1
call fcn.10027950
mov ebx, dword [esp + 0x80]
mov ecx, ebx
movss xmm2, dword [esp + 0x28]
shr ecx, 1
and cl, 1
mov dword [esp + 0x20], ecx
je 0x1004992e
movss xmm6, dword [edi + 0x20c]
movss xmm1, dword [edi + 0x214]
jmp 0x10049939
movss xmm1, dword [edi + 0x204]
movaps xmm6, xmm2
movss xmm0, dword [ebp]
xorps xmm4, xmm4
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x10049952
test ebx, 0x1000000
je 0x10049962
movss xmm5, dword [esp + 0x50]
subss xmm1, xmm6
maxss xmm5, xmm1
jmp 0x10049968
movss xmm5, dword [esp + 0x30]
movss xmm7, dword [esp + 0x44]
addss xmm5, xmm6
movss dword [esp + 0x60], xmm2
movaps xmm0, xmm7
movss dword [esp + 0x64], xmm7
movss dword [esp + 0x68], xmm6
movss dword [esp + 0x6c], xmm7
movss dword [esp + 0x58], xmm5
movss dword [esp + 0x70], xmm5
addss xmm0, dword [esp + 0x40]
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x74], xmm0
test ebx, 0x4000000
jne 0x10049a2b
test cl, cl
jne 0x100499c5
movss xmm4, dword [esi + 0xbb4]
movss xmm3, dword [esi + 0xbb8]
movaps xmm0, xmm4
mulss xmm0, dword [0x100a6f8c]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x100a6f8c]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm4, xmm2
subss xmm3, xmm0
subss xmm6, xmm2
subss xmm7, xmm0
addss xmm4, xmm5
addss xmm3, dword [esp + 0x44]
movss dword [esp + 0x68], xmm6
movss dword [esp + 0x6c], xmm7
movss dword [esp + 0x70], xmm4
movss dword [esp + 0x74], xmm3
movss xmm0, dword [edi + 0x21c]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [edi + 0x224]
movss dword [esp + 0x30], xmm0
test cl, cl
je 0x10049a63
mov eax, dword [edi + 0x20c]
mov dword [edi + 0x21c], eax
mov eax, dword [edi + 0x214]
mov dword [edi + 0x224], eax
mov ebp, dword [esp + 0x1c]
lea ecx, [esp + 0x68]
mov eax, ebx
mov edx, ebp
shr eax, 3
and eax, 0xffffff01
mov dword [esp + 0x40], eax
movzx eax, al
shl eax, 2
push eax
push 0
call fcn.100276a0
add esp, 8
cmp byte [esp + 0x20], 0
je 0x10049aaf
movss xmm0, dword [esp + 0x44]
movss dword [edi + 0x21c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [edi + 0x224], xmm0
test al, al
je 0x10049e6e
mov eax, dword [esi + 0x1b98]
shr eax, 2
and eax, 0xffffff01
cmp byte [esp + 0x40], 0
mov dword [esp + 0x44], eax
je 0x10049ad9
test al, al
jne 0x10049ad9
call fcn.10025360
cmp byte [esp + 0x20], 0
je 0x10049b16
cmp dword [esi + 0x1f98], 0
je 0x10049af0
call fcn.1003e350
jmp 0x10049afe
cmp dword [edi + 0x198], 0
je 0x10049afe
call fcn.1003f010
or dword [esi + 0x1bc8], 0x200
movups xmm0, xmmword [edi + 0x21c]
movups xmmword [esi + 0x1bfc], xmm0
mov ecx, ebx
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x100000
test ebx, 0x8000000
cmove edx, ecx
mov ecx, edx
or ecx, 0x10
test ebx, 0x400000
cmove ecx, edx
mov edx, ecx
or edx, 0x80
test ebx, 0x800000
cmove edx, ecx
mov ecx, edx
or ecx, 0x120
test bl, 4
cmove ecx, edx
test bl, 0x10
jne 0x10049b70
test dword [esi + 0x1bc4], 0x200
je 0x10049b76
or ecx, 0x1000
mov al, byte [esp + 0x17]
mov edx, ebp
mov byte [esp + 0x1a], al
lea eax, [esp + 0x1b]
push ecx
push eax
lea eax, [esp + 0x21]
push eax
lea ecx, [esp + 0x74]
call fcn.1003fd00
mov dl, byte [esp + 0x25]
add esp, 0xc
mov byte [esp + 0x18], al
test ebx, 0x200000
je 0x10049bd9
mov ebp, dword [esi + 0x1d20]
test ebp, ebp
je 0x10049bd3
mov ecx, dword [esi + 0x1d24]
cmp ecx, dword [esi + 0x1b94]
mov ecx, dword [esp + 0x1c]
jne 0x10049bdb
cmp ebp, ecx
jne 0x10049bdb
mov al, 1
mov byte [esp + 0x18], al
mov byte [esp + 0x17], al
jmp 0x10049bf3
mov ecx, dword [esp + 0x1c]
jmp 0x10049bdb
mov ecx, ebp
test al, al
jne 0x10049bf3
test dl, dl
je 0x10049cb4
test ebx, 0x2000000
je 0x10049cb0
cmp byte [esi + 0x1d4b], 0
jne 0x10049c8e
cmp dword [esi + 0x1cf0], edi
jne 0x10049c8e
mov ebp, dword [edi + 0x150]
cmp dword [esi + 0x1d38], ebp
jne 0x10049c8e
movss xmm1, dword [edi + 0x108]
lea eax, [esp + 0x30]
movss xmm0, dword [esp + 0x68]
mov edx, ebp
movss xmm2, dword [edi + 0x10c]
subss xmm0, xmm1
push eax
push dword [esi + 0x1b94]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x74]
subss xmm0, xmm2
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x78]
subss xmm0, xmm1
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x7c]
subss xmm0, xmm2
movss dword [esp + 0x44], xmm0
call fcn.10029430
mov dl, byte [esp + 0x21]
add esp, 8
mov al, byte [esp + 0x18]
mov byte [esi + 0x1d4a], 1
test al, al
je 0x10049c9f
mov ecx, dword [esp + 0x1c]
call fcn.1001cd00
mov dl, byte [esp + 0x19]
mov al, byte [esp + 0x17]
cmp al, byte [esp + 0x1a]
je 0x10049cb0
or dword [esi + 0x1bc8], 8
test dl, dl
jne 0x10049cbf
cmp byte [esp + 0x17], 0
je 0x10049d3c
cmp byte [esp + 0x1b], 0
je 0x10049cd1
test dl, dl
je 0x10049cd1
mov ebx, 0x1a
jmp 0x10049cdb
xor ebx, ebx
test dl, dl
setne bl
add ebx, 0x18
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x6c]
movss xmm1, dword [0x100a6fc8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x28], eax
mov eax, dword [0x100b7db4]
push 0
push ecx
mov dword [esp + 0x3c], ecx
mov ecx, ebx
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0x124c]
mov dword [esp], 0
call fcn.1001a8b0
mov ecx, dword [edx + 0x270]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.10039470
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x1c]
cmp dword [esi + 0x1cf4], eax
jne 0x10049d58
push 0xa
mov edx, eax
lea ecx, [esp + 0x6c]
call fcn.1001b930
add esp, 4
cmp byte [esp + 0x20], 0
je 0x10049d7d
cmp dword [esi + 0x1f98], 0
je 0x10049d6f
call fcn.1003e410
jmp 0x10049d7d
cmp dword [edi + 0x198], 0
je 0x10049d7d
call fcn.1003f0c0
lea eax, [esp + 0x68]
push eax
lea eax, [esi + 0xc10]
push eax
lea eax, [esp + 0x58]
push eax
push 0
push dword [esp + 0x5c]
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x74]
call fcn.1001af60
add esp, 0x14
cmp byte [esp + 0x18], 0
je 0x10049e4f
test dword [edi + 0xc], 0x4000000
je 0x10049e4f
test bl, 1
jne 0x10049e4f
test byte [esi + 0x1bc4], 0x20
jne 0x10049e4f
mov edi, dword [0x100b7db4]
mov ecx, dword [edi + 0x1ccc]
sub ecx, 1
js 0x10049e4f
cmp ecx, dword [edi + 0x1cc0]
jge 0x10049e4f
mov eax, dword [edi + 0x1cd4]
lea edx, [ecx + ecx*4]
mov esi, dword [edi + 0x1cc8]
shl edx, 3
mov eax, dword [edx + eax]
cmp eax, dword [esi + edx]
jne 0x10049e4f
test ecx, ecx
jle 0x10049e37
lea eax, [esi - 0x24]
add eax, edx
nop
mov esi, dword [eax + 0x28]
mov edx, dword [eax]
test esi, esi
je 0x10049e37
test dword [esi + 0xc], 0x10000000
je 0x10049e37
test edx, edx
je 0x10049e37
test dword [edx + 0xc], 0x400
jne 0x10049e37
dec ecx
sub eax, 0x28
test ecx, ecx
jg 0x10049e10
mov dl, 1
call fcn.10028b70
mov eax, dword [edi + 0x1cf0]
test eax, eax
je 0x10049e4f
mov byte [eax + 0x159], 1
cmp byte [esp + 0x40], 0
je 0x10049e62
cmp byte [esp + 0x44], 0
jne 0x10049e62
call fcn.100253c0
mov al, byte [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x6c
ret