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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x70
mov eax, dword [0x100bd040]
xor eax, esp
mov dword [esp + 0x6c], eax
mov eax, dword [0x100c353c]
mov edx, ecx
push esi
push edi
mov dword [esp + 0x10], eax
mov ecx, dword [eax + 0x3e28]
mov dword [esp + 0x34], ecx
cmp byte [ecx + 0xab], 0
jne 0x10048471
mov edi, dword [eax + 0x49d0]
mov eax, dword [edi + 0x5c]
imul esi, eax, 0x68
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x10]
add eax, esi
test edx, edx
mov dword [esp + 0x24], eax
mov eax, 0x1009bdbe
cmovne eax, edx
xor edx, edx
mov ecx, eax
mov dword [esp + 0x38], eax
call fcn.10004cba
mov edx, dword [esp + 0x38]
push ecx
mov dword [esp], 0xbf800000
lea ecx, [esp + 0x4c]
push 1
push eax
mov dword [esp + 0x60], eax
call fcn.100085b1
mov ecx, dword [esp + 0x40]
xor edx, edx
add esp, 0xc
xorps xmm3, xmm3
movss dword [esp + 0x40], xmm3
movss xmm2, dword [ecx + 0xec]
movss dword [esp + 0x58], xmm2
movss xmm0, dword [ecx + 0xf0]
movss dword [esp + 0x5c], xmm0
mov eax, dword [edi + 0x10]
movss xmm0, dword [edi + 0xf0]
movss xmm1, dword [edi + 0xa8]
addss xmm1, xmm1
maxss xmm0, dword [eax + esi + 8]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [edi + 0x64]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [edi + 0xf8]
minss xmm0, dword [eax + esi + 0xc]
mov esi, dword [esp + 0x24]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [edi + 0x68]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [edi + 0x6c]
subss xmm0, xmm1
mov byte [esp + 0x60], dl
movss xmm1, dword [esp + 0x4c]
mov word [esp + 0x61], dx
mov byte [esp + 0x63], dl
test byte [edi + 4], 8
maxss xmm1, xmm0
xorps xmm0, xmm0
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x3c], xmm1
je 0x10047f2c
test dword [esi], 0x200
jne 0x10047f2c
mov eax, dword [esp + 0x10]
movss xmm0, dword [eax + 0x3bb4]
mulss xmm0, dword [0x100b1a68]
addss xmm0, dword [eax + 0x37d4]
cvttss2si eax, xmm0
movd xmm0, eax
mov al, byte [esi + 0x56]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x30], xmm0
test al, al
jle 0x10047f2c
movsx eax, al
inc eax
push eax
push 0x1009ce84
lea eax, [esp + 0x68]
push 4
push eax
call fcn.10002ed3
add esp, 0xc
lea edx, [esp + 0x64]
lea ecx, [esp + 0x44]
mov dword [esp], 0xbf800000
push 0
push 0
call fcn.100085b1
mov ecx, dword [esp + 0x1c]
add esp, 0xc
movss xmm2, dword [esp + 0x58]
xor edx, edx
movss xmm0, dword [esp + 0x30]
movss xmm3, dword [ecx + 0x37ec]
addss xmm3, dword [eax]
mov ecx, dword [esp + 0x34]
movss dword [esp + 0x40], xmm3
movss xmm1, dword [esp + 0x48]
addss xmm1, xmm2
addss xmm1, xmm3
addss xmm1, xmm0
movss xmm0, dword [esi + 0x48]
maxss xmm0, dword [esi + 0x38]
movss dword [esi + 0x48], xmm0
movss xmm0, dword [esi + 0x4c]
maxss xmm0, xmm1
movss dword [esi + 0x4c], xmm0
cmp byte [edi + 0x1d2], 0
je 0x10047f80
movsx eax, byte [edi + 0x1c4]
cmp eax, dword [esp + 0x2c]
jne 0x10047f80
mov ax, word [edi + 0x62]
mov byte [esp + 0xf], 1
cmp ax, word [edi + 0x60]
je 0x10047f84
mov byte [esp + 0xf], dl
push ecx
push dword [esp + 0x3c]
call fcn.10006542
movss xmm2, dword [esp + 0x50]
lea ecx, [esp + 0x14]
movss xmm3, dword [esp + 0x3c]
movss xmm1, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
movss dword [esp + 0x68], xmm2
addss xmm2, xmm3
movss dword [esp + 0x64], xmm1
movss xmm1, dword [esp + 0x20]
movss xmm0, dword [eax + 0x37f8]
addss xmm0, xmm0
movss dword [esp + 0x6c], xmm1
movss xmm1, dword [esp + 0x14]
and dword [esp + 0x14], 0
movss dword [esp + 0x18], xmm3
addss xmm0, xmm2
maxss xmm1, xmm0
movss dword [esp + 0x70], xmm1
movss xmm1, dword [0x100b1cc8]
call fcn.1000f819
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x64]
push 0
push 0
call fcn.1000f96d
pop ecx
pop ecx
test al, al
je 0x10048471
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xd]
push 0x1000
push eax
lea eax, [esp + 0x16]
push eax
lea ecx, [esp + 0x70]
call fcn.1004b1cf
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x3e74], ecx
je 0x10048053
call fcn.10008974
mov dl, byte [esp + 0xd]
movss xmm0, dword [0x100b1aa4]
mov al, byte [esp + 0xe]
test dl, dl
jne 0x1004807c
test al, al
jne 0x1004807c
cmp byte [esp + 0xf], al
jne 0x1004807c
test byte [edi + 0x78], 1
jne 0x100480a4
push 0x2a
pop ecx
jmp 0x1004808e
xor ecx, ecx
test al, al
push 0x1a
setne cl
add ecx, 0x18
test dl, dl
pop eax
cmovne ecx, eax
movaps xmm1, xmm0
call fcn.1000471a
push dword [edi + 0x5c]
mov edx, eax
push 3
pop ecx
call fcn.10045dcb
pop ecx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x64]
push 0xa
call fcn.10005544
mov al, byte [esp + 0x11]
pop ecx
test al, al
je 0x100480c6
mov ecx, dword [esp + 0x2c]
mov byte [edi + 0x1bd], cl
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
movss xmm1, dword [edx + 0x37e8]
mulss xmm1, dword [0x100b1a5c]
movss xmm0, dword [ecx + 0xf0]
subss xmm0, xmm1
movss dword [ecx + 0xf0], xmm0
test al, al
je 0x1004820c
test byte [edi + 4], 2
je 0x1004820c
mov eax, dword [0x100c353c]
cmp byte [eax + 0xdc0], 0
je 0x1004820c
movss xmm1, dword [0x100b1cc8]
xor ecx, ecx
call fcn.1000e268
test al, al
je 0x1004820c
cmp byte [edx + 0x4930], cl
jne 0x1004820c
mov eax, dword [esp + 0x2c]
xorps xmm1, xmm1
mov byte [edi + 0x1be], al
mov ax, word [edi + 0x60]
mov word [edi + 0x62], ax
comiss xmm1, dword [edx + 0xb4]
jbe 0x100481ad
movss xmm0, dword [esp + 0x28]
comiss xmm0, dword [edx + 0xdb8]
jbe 0x100481ad
mov al, byte [esi + 0x54]
cmp al, 0xff
je 0x100481ad
movsx eax, al
imul ecx, eax, 0x68
add ecx, dword [edi + 0x10]
mov dword [esp + 0x14], ecx
je 0x100481ad
mov eax, dword [esi]
or eax, dword [ecx]
test al, 0x40
jne 0x100481ad
mov eax, dword [esp + 0x14]
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
mov edx, dword [esp + 0x10]
jne 0x100481ad
mov byte [edi + 0x1bf], 0xff
movss xmm0, dword [edx + 0xb4]
comiss xmm0, xmm1
jbe 0x1004820c
movss xmm0, dword [edx + 0xdb8]
comiss xmm0, dword [esp + 0x20]
jbe 0x1004820c
mov al, byte [esi + 0x55]
cmp al, 0xff
je 0x1004820c
movsx eax, al
imul ecx, eax, 0x68
add ecx, dword [edi + 0x10]
mov dword [esp + 0x14], ecx
je 0x1004820c
mov eax, dword [esi]
or eax, dword [ecx]
test al, 0x40
jne 0x1004820c
mov eax, dword [esp + 0x14]
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 0x1004820c
mov byte [edi + 0x1bf], 1
test byte [edi + 4], 8
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esp + 0x30]
subss xmm0, dword [esp + 0x40]
movss dword [esp + 0x20], xmm0
je 0x100483aa
test dword [esi], 0x200
jne 0x100483aa
mov al, byte [esi + 0x56]
cmp al, 0xff
je 0x1004832a
movss xmm1, dword [esp + 0x28]
maxss xmm1, xmm0
movss xmm0, dword [esp + 0x5c]
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x28], xmm1
test al, al
jle 0x100482d3
movss xmm1, dword [0x100b1a70]
xor ecx, ecx
call fcn.1000471a
mov edx, eax
xor ecx, ecx
call fcn.100047d7
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x60]
movss xmm1, dword [esp + 0x28]
xor edx, edx
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x18], xmm0
addss xmm1, dword [eax + 0x37ec]
push dword [esp + 0x18]
movss dword [esp + 0x18], xmm1
push dword [esp + 0x18]
push 1
call fcn.10004cde
add esp, 0xc
xor ecx, ecx
inc ecx
call fcn.10004900
movss xmm1, dword [esp + 0x28]
addss xmm1, dword [esp + 0x40]
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x14], xmm1
xor ecx, ecx
movss xmm1, dword [0x100b1aa4]
movss dword [esp + 0x18], xmm0
call fcn.1000471a
mov cl, byte [esi + 0x65]
xor edx, edx
push dword [esp + 0x18]
movss xmm3, dword [0x100b1a68]
and cl, 3
push dword [esp + 0x18]
cmp cl, 1
mov ecx, dword [esp + 0x3c]
setne dl
add edx, 2
mov ecx, dword [ecx + 0x260]
push edx
mov edx, eax
call fcn.1003fe31
movss xmm0, dword [esp + 0x2c]
add esp, 0xc
cmp byte [esp + 0x1f], 0
je 0x100483aa
movsx eax, byte [edi + 0x1be]
cmp eax, dword [esp + 0x2c]
je 0x100483aa
cmp byte [esi + 0x56], 0xff
mov al, byte [esi + 0x66]
mov byte [esp + 0xd], al
jne 0x10048350
movzx esi, al
jmp 0x1004838f
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 0x10048376
mov al, byte [esp + 0xd]
mov ecx, esi
cmp ecx, 3
jl 0x1004835a
xor esi, esi
jmp 0x10048392
movzx ecx, ah
mov eax, esi
shr ecx, 2
and ecx, 3
cdq
idiv ecx
movzx esi, byte [esp + 0xd]
add dl, dl
mov ecx, edx
shr esi, cl
and esi, 3
mov eax, dword [esp + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x2c]
movzx eax, byte [eax + 0xdd1]
push eax
call fcn.100476e0
pop ecx
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x58]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x38]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x5c]
addss xmm0, dword [esp + 0x3c]
addss xmm0, dword [eax + 0x37d8]
lea eax, [esp + 0x48]
push eax
push esi
push edi
push ecx
movss dword [esp + 0x28], xmm0
lea eax, [esp + 0x24]
movss xmm0, dword [esp + 0x30]
movss dword [esp], xmm0
movaps xmm3, xmm0
push eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x260]
call fcn.10004fef
movss xmm0, dword [esp + 0x34]
add esp, 0x14
subss xmm0, dword [esp + 0x58]
movss xmm1, dword [esp + 0x48]
comiss xmm1, xmm0
jbe 0x10048451
cmp byte [esp + 0xe], 0
je 0x10048451
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x3e74], 0
jne 0x10048451
mov ecx, 0x800
call fcn.1000698f
test al, al
je 0x10048451
push edi
sub esi, edi
push esi
push str._.s
call fcn.10010a29
add esp, 0xc
xor ecx, ecx
inc ecx
call fcn.1000e16f
test al, al
je 0x10048471
xor ecx, ecx
call fcn.1000698f
test al, al
je 0x10048471
mov ecx, dword [esp + 0x2c]
call fcn.10048482
mov ecx, dword [esp + 0x74]
pop edi
pop esi
xor ecx, esp
call fcn.10069b82
mov esp, ebp
pop ebp
ret