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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x78
mov eax, dword [0x1008c00c]
xor eax, esp
mov dword [esp + 0x74], eax
mov eax, dword [0x10090d48]
push esi
push edi
mov dword [esp + 0x18], eax
mov edx, dword [eax + 0x3e28]
mov dword [esp + 0x30], edx
cmp byte [edx + 0xab], 0
jne 0x1004b88e
mov edi, dword [eax + 0x49d0]
mov eax, dword [edi + 0x5c]
imul esi, eax, 0x68
mov dword [esp + 0x20], eax
mov eax, 0x1007149a
add esi, dword [edi + 0x10]
test ecx, ecx
cmovne eax, ecx
xor edx, edx
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.10004d13
mov edx, dword [esp + 0x34]
push ecx
mov dword [esp], 0xbf800000
lea ecx, [esp + 0x48]
push 1
push eax
mov dword [esp + 0x58], eax
call fcn.10008639
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x68]
add esp, 0xc
mov edx, edi
movss xmm0, dword [eax + 0xec]
push dword [esp + 0x20]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [eax + 0xf0]
movss dword [esp + 0x58], xmm0
call fcn.100492f3
movss xmm1, dword [edi + 0xa8]
add esp, 4
movss xmm0, dword [edi + 0x6c]
addss xmm1, xmm1
and dword [esp + 0x58], 0
xorps xmm2, xmm2
test byte [edi + 4], 8
movss dword [esp + 0x38], xmm2
subss xmm0, xmm1
movss xmm1, dword [esp + 0x48]
maxss xmm1, xmm0
xorps xmm0, xmm0
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x40], xmm1
je 0x1004b32e
test dword [esi], 0x200
jne 0x1004b32e
mov eax, dword [esp + 0x18]
movss xmm0, dword [eax + 0x3bb4]
mulss xmm0, dword [0x100884c4]
addss xmm0, dword [eax + 0x37d4]
cvttss2si eax, xmm0
movd xmm1, eax
mov al, byte [esi + 0x56]
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x24], xmm1
test al, al
jle 0x1004b32e
movsx eax, al
inc eax
push eax
push 0x1007255c
lea eax, [esp + 0x60]
push 4
push eax
call fcn.10002ef1
add esp, 0xc
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x2c]
mov dword [esp], 0xbf800000
push 0
push 0
call fcn.10008639
mov ecx, dword [esp + 0x24]
add esp, 0xc
movss xmm2, dword [ecx + 0x37ec]
addss xmm2, dword [eax]
movss dword [esp + 0x38], xmm2
movss xmm1, dword [esp + 0x44]
addss xmm1, dword [esp + 0x50]
movss xmm0, dword [esi + 0x48]
maxss xmm0, dword [esi + 0x38]
addss xmm1, xmm2
movss dword [esi + 0x48], xmm0
movss xmm0, dword [esi + 0x4c]
addss xmm1, dword [esp + 0x24]
maxss xmm0, xmm1
movss dword [esi + 0x4c], xmm0
cmp byte [edi + 0x1d2], 0
je 0x1004b386
movsx eax, byte [edi + 0x1c4]
cmp eax, dword [esp + 0x20]
jne 0x1004b386
mov ax, word [edi + 0x62]
mov byte [esp + 0x17], 1
cmp ax, word [edi + 0x60]
je 0x1004b38b
mov byte [esp + 0x17], 0
push ecx
push dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
call fcn.100065cf
movss xmm0, dword [esp + 0x5c]
lea ecx, [esp + 0x28]
movss xmm2, dword [esp + 0x64]
and dword [esp + 0x28], 0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x60]
movss dword [esp + 0x70], xmm0
movss xmm1, dword [eax + 0x37f8]
movss dword [esp + 0x74], xmm2
addss xmm1, xmm1
movss xmm2, dword [esp + 0x40]
addss xmm0, xmm2
movss dword [esp + 0x2c], xmm2
addss xmm1, xmm0
movss xmm0, dword [esp + 0x68]
maxss xmm0, xmm1
movss xmm1, dword [0x10088720]
movss dword [esp + 0x78], xmm0
call fcn.1000fcb8
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
push 0
push 0
call fcn.1000fe07
pop ecx
pop ecx
test al, al
je 0x1004b88e
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xe]
push 0x1000
push eax
lea eax, [esp + 0x17]
push eax
lea ecx, [esp + 0x78]
call fcn.1004e698
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x3e74], ecx
je 0x1004b45e
call fcn.10008a46
mov al, byte [esp + 0xe]
movss xmm0, dword [0x10088500]
mov dl, byte [esp + 0xf]
test al, al
jne 0x1004b487
test dl, dl
jne 0x1004b487
cmp byte [esp + 0x17], dl
jne 0x1004b487
test byte [edi + 0x78], 1
jne 0x1004b4af
push 0x2a
pop ecx
jmp 0x1004b499
xor ecx, ecx
test dl, dl
push 0x1a
setne cl
add ecx, 0x18
test al, al
pop edx
cmovne ecx, edx
movaps xmm1, xmm0
call fcn.10004763
push dword [edi + 0x5c]
mov edx, eax
push 3
pop ecx
call fcn.10049345
pop ecx
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x6c]
push 0xa
call fcn.10005595
mov al, byte [esp + 0x12]
pop ecx
test al, al
je 0x1004b4d1
mov ecx, dword [esp + 0x20]
mov byte [edi + 0x1bd], cl
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
movss xmm1, dword [edx + 0x37e8]
mulss xmm1, dword [0x100884b0]
movss xmm0, dword [ecx + 0xf0]
subss xmm0, xmm1
movss dword [ecx + 0xf0], xmm0
test al, al
je 0x1004b62d
test byte [edi + 4], 2
je 0x1004b62d
mov eax, dword [0x10090d48]
cmp byte [eax + 0xdc0], 0
je 0x1004b62d
movss xmm1, dword [0x10088720]
xor ecx, ecx
call fcn.1000e60a
test al, al
je 0x1004b62d
cmp byte [edx + 0x4930], cl
jne 0x1004b62d
mov eax, dword [esp + 0x20]
xorps xmm3, xmm3
mov byte [edi + 0x1be], al
mov ax, word [edi + 0x60]
mov word [edi + 0x62], ax
movss xmm1, dword [edx + 0xb4]
comiss xmm3, xmm1
movaps xmm0, xmm1
jbe 0x1004b5d0
movss xmm2, dword [esp + 0x5c]
comiss xmm2, dword [edx + 0xdb8]
jbe 0x1004b5d0
mov al, byte [esi + 0x54]
cmp al, 0xff
je 0x1004b58a
movsx eax, al
imul ecx, eax, 0x68
add ecx, dword [edi + 0x10]
jmp 0x1004b58c
xor ecx, ecx
mov dword [esp + 0x10], ecx
movaps xmm0, xmm1
test ecx, ecx
je 0x1004b5d0
mov eax, dword [esi]
or eax, dword [ecx]
test al, 0x40
jne 0x1004b5d0
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dl, byte [edi + 0x1c7]
cmp byte [eax + 0x53], dl
setl cl
xor eax, eax
cmp byte [esi + 0x53], dl
mov edx, dword [esp + 0x18]
setl al
cmp eax, ecx
jne 0x1004b5d0
mov byte [edi + 0x1bf], 0xff
movss xmm0, dword [edx + 0xb4]
comiss xmm0, xmm3
jbe 0x1004b62d
movss xmm0, dword [edx + 0xdb8]
comiss xmm0, dword [esp + 0x64]
jbe 0x1004b62d
mov al, byte [esi + 0x55]
cmp al, 0xff
je 0x1004b5f6
movsx eax, al
imul ecx, eax, 0x68
add ecx, dword [edi + 0x10]
jmp 0x1004b5f8
xor ecx, ecx
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x1004b62d
mov eax, dword [esi]
or eax, dword [ecx]
test al, 0x40
jne 0x1004b62d
mov eax, dword [esp + 0x10]
xor edx, edx
mov cl, byte [edi + 0x1c7]
cmp byte [eax + 0x53], cl
setl dl
xor eax, eax
cmp byte [esi + 0x53], cl
setl al
cmp eax, edx
jne 0x1004b62d
mov byte [edi + 0x1bf], 1
test byte [edi + 4], 8
movss xmm0, dword [esp + 0x64]
subss xmm0, dword [esp + 0x24]
subss xmm0, dword [esp + 0x38]
movss dword [esp + 0x24], xmm0
je 0x1004b7cb
test dword [esi], 0x200
jne 0x1004b7cb
mov al, byte [esi + 0x56]
cmp al, 0xff
je 0x1004b74b
movss xmm1, dword [esp + 0x5c]
maxss xmm1, xmm0
movss xmm0, dword [esp + 0x54]
movss dword [esp + 0x3c], xmm0
movss dword [esp + 0x10], xmm1
test al, al
jle 0x1004b6f4
movss xmm1, dword [0x100884cc]
xor ecx, ecx
call fcn.10004763
mov edx, eax
xor ecx, ecx
call fcn.10004824
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x58]
xor edx, edx
movss xmm0, dword [eax + 0x37ec]
addss xmm0, dword [esp + 0x10]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x2c], xmm0
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push 1
call fcn.10004d36
add esp, 0xc
xor ecx, ecx
inc ecx
call fcn.1000495c
movss xmm1, dword [esp + 0x10]
addss xmm1, dword [esp + 0x38]
movss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x28], xmm1
xor ecx, ecx
movss xmm1, dword [0x10088500]
movss dword [esp + 0x2c], xmm0
call fcn.10004763
mov cl, byte [esi + 0x65]
xor edx, edx
push dword [esp + 0x2c]
movss xmm3, dword [0x100884c4]
and cl, 3
push dword [esp + 0x2c]
cmp cl, 1
mov ecx, dword [esp + 0x38]
setne dl
add edx, 2
mov ecx, dword [ecx + 0x260]
push edx
mov edx, eax
call fcn.1003fafb
movss xmm0, dword [esp + 0x30]
add esp, 0xc
cmp byte [esp + 0x1f], 0
je 0x1004b7cb
movsx eax, byte [edi + 0x1be]
cmp eax, dword [esp + 0x20]
je 0x1004b7cb
cmp byte [esi + 0x56], 0xff
mov al, byte [esi + 0x66]
mov byte [esp + 0xe], al
jne 0x1004b771
movzx esi, al
jmp 0x1004b7b0
mov ah, byte [esi + 0x65]
xor ecx, ecx
mov dl, ah
and dl, 3
lea esi, [ecx + 1]
add cl, cl
shr al, cl
and al, 3
cmp dl, al
je 0x1004b797
mov al, byte [esp + 0xe]
mov ecx, esi
cmp ecx, 3
jl 0x1004b77b
xor esi, esi
jmp 0x1004b7b3
movzx ecx, ah
mov eax, esi
shr ecx, 2
and ecx, 3
cdq
idiv ecx
movzx esi, byte [esp + 0xe]
add dl, dl
mov ecx, edx
shr esi, cl
and esi, 3
mov eax, dword [esp + 0x18]
mov edx, esi
mov ecx, dword [esp + 0x20]
movzx eax, byte [eax + 0xdd1]
push eax
call fcn.1004ac32
pop ecx
mov edi, dword [esp + 0x4c]
lea eax, [esp + 0x44]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x50]
movss xmm3, dword [esp + 0x24]
push eax
movss dword [esp + 0x2c], xmm0
lea eax, [esp + 0x2c]
movss xmm0, dword [esp + 0x58]
addss xmm0, dword [esp + 0x44]
push edi
push dword [esp + 0x3c]
push ecx
addss xmm0, dword [esi + 0x37d8]
movss dword [esp], xmm3
push eax
mov eax, dword [esp + 0x44]
movss dword [esp + 0x40], xmm0
mov ecx, dword [eax + 0x260]
call fcn.10005049
movss xmm0, dword [esp + 0x38]
add esp, 0x14
subss xmm0, dword [esp + 0x50]
movss xmm1, dword [esp + 0x44]
comiss xmm1, xmm0
jbe 0x1004b86e
cmp byte [esp + 0xf], 0
je 0x1004b86e
cmp dword [esi + 0x3e74], 0
jne 0x1004b86e
mov ecx, 0x800
call fcn.10006a1d
test al, al
je 0x1004b86e
mov eax, dword [esp + 0x34]
sub edi, eax
push eax
push edi
push str._.s
call fcn.10011116
add esp, 0xc
xor ecx, ecx
inc ecx
call fcn.1000e511
test al, al
je 0x1004b88e
xor ecx, ecx
call fcn.10006a1d
test al, al
je 0x1004b88e
mov ecx, dword [esp + 0x20]
call fcn.1004b89f
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
xor ecx, esp
call fcn.1006dac1
mov esp, ebp
pop ebp
ret