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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
mov eax, dword [0x1018100c]
xor eax, esp
mov dword [esp + 0x134], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [0x101884f4]
push edi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], esi
call fcn.1004cc40
test eax, eax
mov dword [esp + 0x68], eax
mov edi, eax
mov dword [esp + 0x4c], eax
sete byte [esp + 0x44]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x1c], eax
mov edx, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x58], eax
test eax, eax
jne 0x1004f252
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
call fcn.1004cee0
mov edi, eax
mov edx, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0x3c]
mov eax, ecx
and eax, 0x30200
or ecx, 6
cmp eax, 0x30200
mov eax, dword [esi + 0x3f08]
mov dword [esp + 0x48], eax
cmovne ecx, dword [esp + 0x3c]
cmp dword [esi + 0x3f64], 0
mov eax, dword [edx + 0x240]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x50], eax
jne 0x1004f2b3
cmp byte [esi + 0x3f15], 0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x34], edx
je 0x1004f2b7
mov eax, dword [esp + 0x4c]
mov byte [esp + 0x11], 1
jmp 0x1004f2d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x11], 0
mov dl, byte [esp + 0x11]
mov byte [eax + 0xb6], dl
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
dec eax
cmp dword [edx + 0x240], eax
setl al
mov byte [esp + 0x38], al
test ecx, 0x4000000
je 0x1004f336
mov eax, dword [esi + 0x49c8]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x49c4]
mov eax, dword [esp + 0x30]
cmp eax, dword [edx + esi*8 + 4]
mov eax, dword [esp + 0x20]
setne cl
mov eax, dword [eax + 0xc8]
cmp eax, dword [edx + esi*8]
mov esi, dword [esp + 0x2c]
setne al
or cl, al
mov al, byte [esp + 0x38]
or al, cl
mov byte [esp + 0x38], al
mov byte [edi + 0xb4], al
test al, al
je 0x1004f351
push 1
mov edx, 8
mov ecx, edi
call fcn.1004cbb0
add esp, 4
mov edx, dword [esp + 0x50]
cmp edx, dword [esp + 0x48]
je 0x1004f3ce
push dword [esp + 0x14]
mov dl, byte [esp + 0x48]
mov ecx, edi
call fcn.1004ccd0
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [edi + 0xc], edx
test dword [esi + 0x490c], 0x100
je 0x1004f388
mov eax, dword [esi + 0x4944]
jmp 0x1004f38a
xor eax, eax
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [eax + 0x240], ecx
xor eax, eax
movsd xmm0, qword [esi + 0x3f00]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0x244], xmm0
mov word [edi + 0xc0], ax
movzx eax, word [esi + 0x3f7c]
inc dword [esi + 0x3f7c]
mov word [edi + 0xc2], ax
jmp 0x1004f3d5
mov edx, dword [edi + 0xc]
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x3f64]
test eax, eax
jne 0x1004f3e3
xor ecx, ecx
jmp 0x1004f3f0
imul ecx, eax, 0x54
mov eax, dword [esi + 0x3f6c]
mov ecx, dword [eax + ecx - 0x54]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], ecx
cmp eax, dword [esp + 0x48]
je 0x1004f40d
mov eax, edx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, ecx
jmp 0x1004f413
mov eax, dword [edi + 0x300]
cmp dword [edi + 0xec], 0
lea ecx, [edi + 0xec]
mov dword [esp + 0x24], eax
jne 0x1004f42f
lea eax, [edi + 8]
push eax
call fcn.1005ddc0
push 0x3c
lea eax, [esp + 0xc8]
mov dword [esi + 0x3f88], edi
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esi + 0x4908]
lea ecx, [esp + 0x10c]
xorps xmm0, xmm0
mov word [esp + 0x11c], 0
movups xmmword [esp + 0x10c], xmm0
add esp, 0xc
mov dword [esp + 0xc0], edi
movups xmm0, xmmword [esi + 0x48d0]
mov dword [esp + 0xfc], eax
movups xmmword [esp + 0xc4], xmm0
push esi
movups xmm0, xmmword [esi + 0x48e0]
movups xmmword [esp + 0xd8], xmm0
movups xmm0, xmmword [esi + 0x48f0]
movups xmmword [esp + 0xe8], xmm0
movq xmm0, qword [esi + 0x4900]
movq qword [esp + 0xf8], xmm0
call fcn.10054610
mov ecx, dword [esi + 0x3f64]
mov eax, dword [esi + 0x3f68]
cmp ecx, eax
jne 0x1004f540
inc ecx
test eax, eax
je 0x1004f4e1
cdq
sub eax, edx
mov edx, dword [esi + 0x3f68]
sar eax, 1
add eax, edx
jmp 0x1004f4ec
mov edx, dword [esi + 0x3f68]
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov dword [esp + 0x4c], ecx
cmp ecx, edx
jle 0x1004f540
imul ecx, ecx, 0x54
call fcn.1004a490
mov edx, dword [esi + 0x3f6c]
mov dword [esp + 0x1c], eax
test edx, edx
je 0x1004f530
imul ecx, dword [esi + 0x3f64], 0x54
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi + 0x3f6c]
add esp, 0xc
call fcn.1004a4d0
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x3f6c], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x3f68], eax
imul ecx, dword [esi + 0x3f64], 0x54
movups xmm0, xmmword [esp + 0xc0]
mov eax, dword [esp + 0x110]
add ecx, dword [esi + 0x3f6c]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esp + 0xd0]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [esp + 0xe0]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [esp + 0xf0]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [esp + 0x100]
movups xmmword [ecx + 0x40], xmm0
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x14]
mov ecx, eax
inc dword [esi + 0x3f64]
and ecx, 0x10000000
mov dword [esp + 0x54], ecx
je 0x1004f5b0
inc dword [esi + 0x49e0]
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x50], ecx
je 0x1004f5d4
push dword [esp + 0x24]
mov edx, eax
mov ecx, edi
call fcn.1004f090
mov eax, dword [esp + 0x40]
add esp, 4
mov dword [edi + 0x304], eax
mov ecx, dword [edi + 8]
call fcn.10051e90
mov eax, dword [esi + 0x48a4]
mov dword [edi + 0x354], eax
mov eax, dword [esp + 0x14]
and eax, 0x4000000
mov dword [esi + 0x3f88], 0
mov dword [esp + 0x30], eax
je 0x1004f63c
mov eax, dword [esi + 0x49c8]
lea ecx, [esi + 0x49c8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x49c4]
mov dword [eax + edx*8 + 4], edi
lea esi, [eax + edx*8]
mov eax, dword [esp + 0x3c]
push esi
mov eax, dword [eax + 0x150]
mov dword [esi + 0xc], eax
call fcn.1005c670
mov eax, dword [esi]
mov esi, dword [esp + 0x2c]
mov dword [edi + 0xc8], eax
test byte [esi + 0x490c], 1
mov byte [esp + 0x11], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
je 0x1004f6f8
movsx eax, byte [edi + 0xd8]
mov ecx, dword [esi + 0x4910]
test ecx, eax
setne byte [esp + 0x11]
test ecx, eax
je 0x1004f6e7
movss xmm1, dword [esi + 0x4928]
movss xmm0, dword [esi + 0x4924]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x1015aae0]
jbe 0x1004f6e7
mov eax, dword [esi + 0x491c]
mov ecx, dword [esi + 0x4920]
mov dword [edi + 0xdc], eax
mov dword [edi + 0xe0], ecx
mov eax, dword [esi + 0x4924]
mov ecx, dword [esi + 0x4928]
mov dword [edi + 0xe4], eax
mov dword [edi + 0xe8], ecx
movzx ecx, byte [edi + 0xd8]
mov eax, dword [edi + 0xd8]
and ecx, 0xf1
and eax, 0xffffff00
or ecx, eax
mov dword [edi + 0xd8], ecx
jmp 0x1004f6f8
push ecx
lea edx, [esi + 0x491c]
mov ecx, edi
call fcn.10051a30
add esp, 4
test byte [esi + 0x490c], 2
xorps xmm1, xmm1
je 0x1004f7ad
mov al, byte [edi + 0xd9]
movsx ecx, al
mov byte [esp + 0x1b], al
and ecx, dword [esi + 0x4914]
je 0x1004f737
movss xmm0, dword [esi + 0x492c]
lea edx, [esi + 0x492c]
comiss xmm0, xmm1
jbe 0x1004f737
mov byte [esp + 0x13], 1
jmp 0x1004f746
mov byte [esp + 0x13], 0
lea edx, [esi + 0x492c]
test ecx, ecx
je 0x1004f760
movss xmm0, dword [esi + 0x4930]
lea ecx, [esi + 0x4930]
comiss xmm0, xmm1
jbe 0x1004f76b
mov byte [esp + 0x12], 1
jmp 0x1004f770
lea ecx, [esi + 0x4930]
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
test byte [edi + 0x10], 4
je 0x1004f786
test byte [esp + 0x1b], 4
jne 0x1004f786
mov eax, dword [edi + 0x28]
mov dword [esi + 0x492c], eax
test byte [edi + 0x10], 8
je 0x1004f79a
test byte [edi + 0xd9], 4
jne 0x1004f79a
mov eax, dword [edi + 0x2c]
mov dword [ecx], eax
push dword [esi + 0x4914]
mov ecx, edi
call fcn.10051b70
add esp, 4
xorps xmm1, xmm1
test byte [esi + 0x490c], 0x80
je 0x1004f7f4
movss xmm0, dword [esi + 0x493c]
comiss xmm0, xmm1
jb 0x1004f7d5
movss dword [edi + 0x8c], xmm0
mov dword [edi + 0x94], 0
movss xmm0, dword [esi + 0x4940]
comiss xmm0, xmm1
jb 0x1004f7f4
movss dword [edi + 0x90], xmm0
mov dword [edi + 0x98], 0
test byte [esi + 0x490c], 4
je 0x1004f811
mov eax, dword [esi + 0x4934]
mov ecx, dword [esi + 0x4938]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x1004f829
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x48]
je 0x1004f829
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
test byte [esi + 0x490c], 8
je 0x1004f848
push dword [esi + 0x4918]
mov dl, byte [esi + 0x4948]
mov ecx, edi
call fcn.10051c80
add esp, 4
test byte [esi + 0x490c], 0x20
je 0x1004f85a
xor edx, edx
mov ecx, edi
call fcn.100514c0
cmp byte [edi + 0xb4], 0
je 0x1004f874
push 0
mov edx, 8
mov ecx, edi
call fcn.1004cbb0
add esp, 4
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x48]
je 0x10050f38
mov eax, dword [esp + 0x14]
lea ecx, [edi + 0xec]
and eax, 0x3000000
mov dword [esp + 0x34], eax
mov al, byte [edi + 0xd5]
mov byte [edi + 0xae], 1
mov byte [edi + 0xb8], 0
mov dword [edi + 0x218], 0xff7fffff
mov dword [edi + 0x21c], 0xff7fffff
mov dword [edi + 0x220], 0x7f7fffff
push 1
mov byte [esp + 0x1f], al
mov dword [edi + 0x224], 0x7f7fffff
call fcn.1005de40
mov ecx, dword [edi + 0x26c]
call fcn.1007e1d0
mov dword [edi + 0x19c], 0xffffffff
cmp byte [edi + 0x360], 0
je 0x1004f901
mov ecx, edi
call fcn.10049ce0
cmp dword [esi + 0x4ba8], 0
je 0x1004f96e
test dword [edi + 0xc], 0x20000
jne 0x1004f96e
cmp dword [esp + 0x68], 0
je 0x1004f96e
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x64]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1004f941
test dl, dl
je 0x1004f93d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1004f941
add eax, 2
add ecx, 2
test dl, dl
jne 0x1004f921
xor eax, eax
jmp 0x1004f946
sbb eax, eax
or eax, 1
test eax, eax
je 0x1004f96e
mov eax, dword [edi + 0x70]
lea edx, [esp + 0x1c]
push dword [esp + 0x64]
mov ecx, dword [edi + 4]
mov dword [esp + 0x20], eax
call fcn.10046800
mov dword [edi + 4], eax
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x70], eax
lea eax, [edi + 0x38]
mov ecx, edi
lea edx, [edi + 0x30]
push eax
call fcn.1004d310
mov al, byte [edi + 0xd4]
add esp, 4
test al, al
jle 0x1004f991
dec al
mov byte [edi + 0xd4], al
mov al, byte [edi + 0xd5]
test al, al
jle 0x1004f9a3
dec al
mov byte [edi + 0xd5], al
mov al, byte [edi + 0xd6]
test al, al
jle 0x1004f9b5
dec al
mov byte [edi + 0xd6], al
cmp dword [esp + 0x68], 0
mov cl, byte [esp + 0x13]
mov dl, byte [esp + 0x12]
jne 0x1004f9d3
test cl, cl
je 0x1004f9cc
test dl, dl
jne 0x1004f9d3
mov byte [edi + 0xd5], 1
cmp byte [esp + 0x38], 0
je 0x1004fa30
mov eax, dword [esp + 0x14]
test eax, 0x6000000
je 0x1004fa30
mov byte [edi + 0xd5], 1
test al, 0x40
je 0x1004fa30
test cl, cl
jne 0x1004fa02
mov dword [edi + 0x28], 0
mov dword [edi + 0x20], 0
test dl, dl
jne 0x1004fa14
mov dword [edi + 0x2c], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x34], 0
call fcn.1005abf0
mov edx, eax
mov dword [esp + 0x1c], eax
mov ecx, edi
call fcn.1005ac00
call fcn.10049b00
mov edx, dword [esp + 0x14]
mov eax, edx
and eax, 0x1000000
mov dword [esp + 0x28], eax
je 0x1004fa63
mov eax, dword [esi + 0x38d8]
mov dword [edi + 0x54], eax
jmp 0x1004fa8a
test edx, 0x6000000
je 0x1004fa7d
test edx, 0x8000000
jne 0x1004fa7d
movss xmm0, dword [esi + 0x38e0]
jmp 0x1004fa85
movss xmm0, dword [esi + 0x38bc]
movss dword [edi + 0x54], xmm0
cmp dword [esp + 0x28], 0
mov eax, dword [esi + 0x38b0]
mov ecx, dword [esi + 0x38b4]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
je 0x1004fae2
cmp dword [esp + 0x30], 0
jne 0x1004fae2
test byte [edi + 0x10], 2
jne 0x1004fae2
movss xmm0, dword [edi + 0x54]
xorps xmm7, xmm7
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jp 0x1004fae2
test edx, 0x400
je 0x1004fad3
movss xmm0, dword [esi + 0x38b4]
jmp 0x1004fad6
xorps xmm0, xmm0
mov dword [edi + 0x48], 0
movss dword [edi + 0x4c], xmm0
movss xmm0, dword [edi + 0x48]
maxss xmm0, dword [esi + 0x38f4]
maxss xmm0, dword [esi + 0x4968]
movss dword [edi + 0x15c], xmm0
mov eax, dword [esi + 0x496c]
mov dword [edi + 0x160], eax
mov eax, dword [esp + 0x44]
mov byte [esp + 0x20], al
test dl, 0x21
jne 0x1004fc09
test byte [edi + 0xc], 1
mov ecx, dword [edi]
je 0x1004fb29
xorps xmm2, xmm2
jmp 0x1004fb5b
movss xmm0, dword [ecx + 0x3cf8]
mov eax, dword [edi + 0x300]
mulss xmm0, dword [edi + 0x264]
test eax, eax
je 0x1004fb4b
mulss xmm0, dword [eax + 0x264]
movss xmm2, dword [ecx + 0x38e8]
addss xmm2, xmm2
addss xmm2, xmm0
movss xmm0, dword [edi + 0x18]
movaps xmm1, xmm0
movss dword [esp + 0x74], xmm0
addss xmm1, dword [edi + 0x28]
addss xmm2, dword [edi + 0x1c]
movss xmm0, dword [edi + 0x1c]
movss dword [esp + 0x78], xmm0
movss dword [esp + 0x7c], xmm1
movss dword [esp + 0x80], xmm2
cmp dword [esi + 0x3f8c], edi
jne 0x1004fbd1
cmp dword [esi + 0x3fc4], 0
jne 0x1004fbd1
cmp dword [esi + 0x3fc8], 0
jne 0x1004fbd1
push 1
lea edx, [esp + 0x80]
lea ecx, [esp + 0x78]
call fcn.10052b30
add esp, 4
test al, al
je 0x1004fbd1
cmp word [esi + 0x382a], 2
jne 0x1004fbd1
mov byte [edi + 0xb2], 1
cmp byte [edi + 0xb2], 0
je 0x1004fc10
mov cl, byte [edi + 0xb1]
test cl, cl
sete al
test cl, cl
mov byte [edi + 0xb1], al
mov ecx, 1
mov eax, dword [esp + 0x20]
movzx eax, al
cmovne eax, ecx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.1005a260
jmp 0x1004fc10
mov byte [edi + 0xb1], 0
mov byte [edi + 0xb2], 0
movss xmm0, dword [edi + 0xa4]
mov ecx, dword [edi]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [edi + 0xa8]
mov dword [edi + 0x58], 0
mov dword [edi + 0x60], 0
mov edx, dword [edi + 0xc]
movss dword [esp + 0x6c], xmm0
test dl, 1
je 0x1004fc53
xorps xmm2, xmm2
jmp 0x1004fc88
movss xmm0, dword [edi + 0x264]
mov edx, dword [edi + 0x300]
mulss xmm0, dword [ecx + 0x3cf8]
test edx, edx
je 0x1004fc75
mulss xmm0, dword [edx + 0x264]
movss xmm2, dword [ecx + 0x38e8]
mov edx, dword [edi + 0xc]
addss xmm2, xmm2
addss xmm2, xmm0
test edx, 0x400
je 0x1004fccc
movss xmm0, dword [edi + 0x264]
mov eax, dword [edi + 0x300]
mulss xmm0, dword [ecx + 0x3cf8]
test eax, eax
je 0x1004fcb2
mulss xmm0, dword [eax + 0x264]
movss xmm1, dword [ecx + 0x38e8]
addss xmm0, dword [edi + 0x160]
addss xmm1, xmm1
addss xmm1, xmm0
jmp 0x1004fccf
xorps xmm1, xmm1
addss xmm1, xmm2
mov edx, edi
lea eax, [edi + 0x38]
push eax
lea ecx, [esp + 0x8c]
movss dword [edi + 0x5c], xmm1
mov dword [edi + 0x64], 0
mov dword [edi + 0xa4], 0
mov dword [edi + 0xa8], 0
call fcn.1004d440
add esp, 4
test byte [esp + 0x14], 0x40
je 0x1004fd55
cmp byte [edi + 0xb1], 0
jne 0x1004fd55
cmp byte [esp + 0x13], 0
jne 0x1004fd32
movss xmm0, dword [esp + 0x88]
movss dword [edi + 0x28], xmm0
mov byte [esp + 0x44], 1
cmp byte [esp + 0x12], 0
jne 0x1004fdef
movss xmm0, dword [esp + 0x8c]
movss dword [edi + 0x2c], xmm0
mov byte [esp + 0x20], 1
jmp 0x1004fdef
mov al, byte [edi + 0xcc]
test al, al
jg 0x1004fd6c
cmp byte [edi + 0xcd], 0
jle 0x1004fdef
cmp byte [esp + 0x13], 0
jne 0x1004fda3
test al, al
jle 0x1004fda3
cmp byte [edi + 0xce], 0
je 0x1004fd90
movss xmm0, dword [edi + 0x28]
maxss xmm0, dword [esp + 0x88]
jmp 0x1004fd99
movss xmm0, dword [esp + 0x88]
movss dword [edi + 0x28], xmm0
mov byte [esp + 0x44], 1
cmp byte [esp + 0x12], 0
jne 0x1004fddf
cmp byte [edi + 0xcd], 0
jle 0x1004fddf
cmp byte [edi + 0xce], 0
je 0x1004fdcc
movss xmm0, dword [edi + 0x2c]
maxss xmm0, dword [esp + 0x8c]
jmp 0x1004fdd5
movss xmm0, dword [esp + 0x8c]
movss dword [edi + 0x2c], xmm0
mov byte [esp + 0x20], 1
cmp byte [edi + 0xb1], 0
jne 0x1004fdef
mov ecx, edi
call fcn.1005a260
lea eax, [edi + 0x28]
mov edx, edi
push eax
lea ecx, [esp + 0xbc]
call fcn.1004d1b0
add esp, 4
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss dword [edi + 0x28], xmm0
movss dword [edi + 0x2c], xmm1
cmp byte [edi + 0xb1], 0
je 0x1004fe8d
cmp dword [esp + 0x28], 0
jne 0x1004fe8d
test byte [edi + 0xc], 1
mov ecx, dword [edi]
je 0x1004fe34
xorps xmm2, xmm2
jmp 0x1004fe66
movss xmm0, dword [ecx + 0x3cf8]
mov eax, dword [edi + 0x300]
mulss xmm0, dword [edi + 0x264]
test eax, eax
je 0x1004fe56
mulss xmm0, dword [eax + 0x264]
movss xmm2, dword [ecx + 0x38e8]
addss xmm2, xmm2
addss xmm2, xmm0
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [edi + 0x28]
addss xmm2, dword [edi + 0x1c]
subss xmm0, dword [edi + 0x18]
subss xmm2, dword [edi + 0x1c]
movss dword [esp + 0x3c], xmm0
movss dword [esp + 0x40], xmm2
jmp 0x1004fe9b
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
cmp byte [esp + 0x38], 0
lea ecx, [esp + 0x3c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
je 0x1004fef8
cmp dword [esp + 0x30], 0
mov dword [edi + 0xd0], 0xffffffff
je 0x1004fef8
test dword [esp + 0x14], 0x8000000
jne 0x1004fef8
cmp byte [esp + 0x11], 0
jne 0x1004fef8
mov eax, dword [esi + 0x49c8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x49d0]
movss xmm0, dword [eax + ecx*8 - 0x10]
movss xmm1, dword [eax + ecx*8 - 0xc]
movss dword [edi + 0x18], xmm0
movss dword [edi + 0x1c], xmm1
cmp dword [esp + 0x28], 0
je 0x1004ff51
mov ecx, dword [esp + 0x24]
add ecx, 0x188
mov ax, word [ecx]
mov word [edi + 0xc0], ax
lea eax, [esp + 0x5c]
push eax
call fcn.1005cfb0
mov ecx, dword [esp + 0x30]
mov al, byte [esp + 0x11]
mov edx, dword [esp + 0x34]
test ecx, ecx
jne 0x1004ff5d
test al, al
jne 0x1004ff5d
cmp edx, 0x3000000
je 0x1004ff5d
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0xf8]
mov ecx, dword [ecx + 0xfc]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], ecx
jmp 0x1004ff55
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov al, byte [esp + 0x11]
movss xmm1, dword [edi + 0xdc]
ucomiss xmm1, dword [0x1015ac40]
lahf
test ah, 0x44
jnp 0x1004ffc3
cmp byte [edi + 0xd5], 0
jne 0x1004ffc3
movss xmm0, dword [edi + 0x20]
lea edx, [esp + 0x5c]
mulss xmm0, dword [edi + 0xe4]
mov ecx, edi
push 0
subss xmm1, xmm0
movss xmm0, dword [edi + 0xe0]
movss dword [esp + 0x60], xmm1
movss xmm1, dword [edi + 0xe8]
mulss xmm1, dword [edi + 0x24]
subss xmm0, xmm1
movss dword [esp + 0x64], xmm0
call fcn.10051a30
add esp, 4
jmp 0x1005000e
cmp dword [esp + 0x54], 0
jne 0x1004fff0
test ecx, ecx
je 0x1004ffd8
test al, al
jne 0x1004ffd8
cmp byte [esp + 0x1b], al
jg 0x1004fff0
mov ecx, dword [esp + 0x14]
test ecx, 0x2000000
je 0x10050012
test al, al
jne 0x10050012
cmp edx, 0x3000000
je 0x10050012
mov edx, edi
lea ecx, [esp + 0x3c]
call fcn.100561f0
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss dword [edi + 0x18], xmm0
movss dword [edi + 0x1c], xmm1
mov ecx, dword [esp + 0x14]
cmp byte [esp + 0x11], 0
mov eax, dword [esp + 0x1c]
movss xmm2, dword [esi + 0x3970]
maxss xmm2, dword [esi + 0x3978]
movss xmm0, dword [eax + 4]
movss xmm3, dword [eax + 0x14]
movaps xmm5, xmm0
movss xmm6, dword [eax + 0x18]
movaps xmm7, xmm3
addss xmm6, dword [eax + 0x20]
movss xmm1, dword [eax + 8]
addss xmm7, dword [eax + 0x1c]
addss xmm5, dword [eax + 0xc]
movss dword [esp + 0x5c], xmm0
movaps xmm4, xmm1
addss xmm4, dword [eax + 0x10]
movss dword [esp + 0x74], xmm0
subss xmm6, xmm2
movss xmm0, dword [esi + 0x396c]
maxss xmm0, dword [esi + 0x3974]
addss xmm2, dword [eax + 0x18]
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0x78], xmm1
movss dword [esp + 0x7c], xmm5
subss xmm7, xmm0
movss dword [esp + 0x80], xmm4
addss xmm3, xmm0
movss dword [esp + 0xac], xmm2
movss dword [esp + 0xb4], xmm6
movss dword [esp + 0xb0], xmm7
movss dword [esp + 0xa8], xmm3
jne 0x10050173
cmp dword [esp + 0x28], 0
jne 0x10050173
subss xmm5, dword [esp + 0x5c]
xorps xmm0, xmm0
comiss xmm5, xmm0
jbe 0x10050173
subss xmm4, xmm1
comiss xmm4, xmm0
jbe 0x10050173
mov eax, dword [0x101884f4]
movss xmm1, dword [edi + 0x24]
cmp byte [eax + 0x4b], 0
je 0x1005013e
test byte [edi + 0xc], 1
jne 0x1005013e
mov edx, dword [edi]
mov eax, dword [edi + 0x300]
movss xmm0, dword [edx + 0x3cf8]
mulss xmm0, dword [edi + 0x264]
test eax, eax
je 0x1005012e
mulss xmm0, dword [eax + 0x264]
movss xmm1, dword [edx + 0x38e8]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [edi + 0x1c]
subss xmm2, xmm1
subss xmm3, dword [edi + 0x20]
comiss xmm2, xmm0
ja 0x10050158
movaps xmm2, xmm6
minss xmm2, xmm0
movss xmm0, dword [edi + 0x18]
comiss xmm3, xmm0
ja 0x10050169
movaps xmm3, xmm7
minss xmm3, xmm0
movss dword [edi + 0x18], xmm3
movss dword [edi + 0x1c], xmm2
cmp dword [esp + 0x28], 0
cvttss2si eax, dword [edi + 0x18]
movd xmm1, eax
cvttss2si eax, dword [edi + 0x1c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x18], xmm1
movss dword [edi + 0x1c], xmm0
je 0x100501a6
movss xmm0, dword [esi + 0x38d4]
jmp 0x100501c6
mov eax, ecx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x100501be
movss xmm0, dword [esi + 0x38dc]
jmp 0x100501c6
movss xmm0, dword [esi + 0x38b8]
xor al, al
movss dword [edi + 0x50], xmm0
mov dword [esp + 0x3c], eax
cmp byte [esp + 0x38], al
je 0x10050201
test ecx, 0x1000
jne 0x10050201
cmp dword [esp + 0x30], 0
je 0x100501ed
mov byte [esp + 0x3c], 1
jmp 0x10050201
cmp dword [esp + 0x34], 0
mov ecx, 1
movzx eax, al
cmove eax, ecx
mov dword [esp + 0x3c], eax
xorps xmm0, xmm0
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x58], 0xffffffff
xor eax, eax
movaps xmmword [esp + 0x120], xmm0
test dword [edi + 0xc], 0x1000000
jne 0x1005022e
cmp byte [esi + 0x4a], al
setne al
inc eax
cmp byte [edi + 0xb1], 0
movss xmm2, dword [esi + 0x3cf4]
movss xmm0, dword [edi + 0x50]
movaps xmm1, xmm2
addss xmm0, dword [0x1015ab60]
mulss xmm2, dword [0x1015ab10]
mov dword [esp + 0x5c], eax
mulss xmm1, dword [0x1015ab64]
addss xmm2, xmm0
maxss xmm1, xmm2
cvttss2si esi, xmm1
jne 0x100502c0
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x124]
push ecx
push eax
lea eax, [esp + 0x64]
mov ecx, edi
push eax
lea eax, [esp + 0x5c]
push eax
lea edx, [esp + 0x9c]
call fcn.1004d8b0
mov edx, dword [esp + 0x58]
add esp, 0x14
test eax, eax
je 0x100502c4
test al, 1
movzx edx, dl
mov ecx, 1
cmovne edx, ecx
test al, 2
mov eax, dword [esp + 0x20]
movzx eax, al
cmovne eax, ecx
mov cl, al
jmp 0x100502c8
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
mov al, byte [esp + 0x4c]
mov byte [edi + 0xb9], al
mov al, byte [esp + 0x58]
mov byte [edi + 0xba], al
cmp byte [edi + 0xb1], 0
jne 0x10050475
cmp dword [esp + 0x68], 0
lea eax, [esp + 0x6c]
movss xmm0, dword [edi + 0x64]
movss xmm2, dword [edi + 0x1e0]
movss xmm3, dword [edi + 0x1e4]
addss xmm0, dword [edi + 0x5c]
subss xmm2, dword [edi + 0x1d8]
subss xmm3, dword [edi + 0x1dc]
movss xmm4, dword [edi + 0x2c]
movss xmm5, dword [edi + 0x28]
subss xmm4, xmm0
addss xmm2, dword [esp + 0x84]
addss xmm3, dword [esp + 0x6c]
jne 0x1005034d
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
jmp 0x10050375
movss xmm0, dword [edi + 0x48]
movss xmm1, dword [edi + 0x4c]
addss xmm0, xmm0
addss xmm1, xmm1
addss xmm0, dword [edi + 0x30]
addss xmm1, dword [edi + 0x34]
movss dword [esp + 0x6c], xmm0
movss dword [esp + 0x70], xmm1
movss xmm6, dword [eax]
movss xmm1, dword [eax + 4]
test dl, dl
jne 0x10050385
movaps xmm5, xmm2
test cl, cl
jne 0x1005038c
movaps xmm4, xmm3
mov edx, dword [esp + 0x14]
test edx, 0x4000
jne 0x100503a6
comiss xmm1, xmm4
jbe 0x100503a2
test dl, 8
je 0x100503a6
xor al, al
jmp 0x100503a8
mov al, 1
mov byte [edi + 0xad], al
test edx, 0x8000
jne 0x100503ed
mov ecx, dword [esp + 0x2c]
add ecx, 0x391c
test al, al
je 0x100503ca
movss xmm0, dword [ecx]
jmp 0x100503cd
xorps xmm0, xmm0
subss xmm5, xmm0
comiss xmm6, xmm5
jbe 0x100503e4
mov eax, edx
and eax, 0x808
cmp eax, 0x800
je 0x100503f7
mov byte [edi + 0xac], 0
jmp 0x1005041d
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x391c]
mov byte [edi + 0xac], 1
cmp byte [edi + 0xad], 0
jne 0x1005041d
comiss xmm1, xmm4
jbe 0x10050415
test dl, 8
jne 0x10050415
mov al, 1
jmp 0x10050417
xor al, al
mov byte [edi + 0xad], al
cmp byte [edi + 0xac], 0
xorps xmm0, xmm0
je 0x1005042f
movss xmm1, dword [ecx]
jmp 0x10050432
xorps xmm1, xmm1
cmp byte [edi + 0xad], 0
je 0x1005043f
movss xmm0, dword [ecx]
movss dword [edi + 0xa4], xmm0
movss dword [edi + 0xa8], xmm1
movss xmm0, dword [edi + 0xa4]
addss xmm0, dword [edi + 0x60]
movss dword [edi + 0x60], xmm0
movss xmm0, dword [edi + 0xa8]
addss xmm0, dword [edi + 0x64]
movss dword [edi + 0x64], xmm0
jmp 0x10050479
mov edx, dword [esp + 0x14]
mov eax, edx
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x1005049c
cmp dword [esp + 0x34], 0x3000000
je 0x1005049c
mov eax, dword [esp + 0x24]
add eax, 0x218
jmp 0x100504a0
lea eax, [esp + 0x74]
test byte [edi + 0xc], 1
movss xmm6, dword [edi + 0x18]
movups xmm0, xmmword [eax]
mov ecx, dword [edi]
movss xmm5, dword [edi + 0x1c]
movaps xmm2, xmm6
addss xmm2, dword [edi + 0x20]
movaps xmm3, xmm5
movss dword [esp + 0x6c], xmm6
addss xmm3, dword [edi + 0x24]
movups xmmword [esp + 0x90], xmm0
je 0x100504d8
xorps xmm1, xmm1
jmp 0x1005050a
movss xmm0, dword [ecx + 0x3cf8]
mov eax, dword [edi + 0x300]
mulss xmm0, dword [edi + 0x264]
test eax, eax
je 0x100504fa
mulss xmm0, dword [eax + 0x264]
movss xmm1, dword [ecx + 0x38e8]
addss xmm1, xmm1
addss xmm1, xmm0
movaps xmm7, xmm5
movss dword [esp + 0x74], xmm6
addss xmm7, xmm1
mov ecx, dword [esp + 0x2c]
movss xmm1, dword [edi + 0x1c]
movaps xmm0, xmm6
addss xmm0, dword [edi + 0x28]
movss dword [esp + 0x84], xmm1
mov eax, edx
movss dword [esp + 0x78], xmm1
and eax, 0x401
movss dword [esp + 0x20], xmm7
xorps xmm4, xmm4
movss dword [esp + 0x80], xmm7
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x7c], xmm0
movss dword [edi + 0x1c8], xmm6
movss dword [edi + 0x1cc], xmm5
movss dword [edi + 0x1d0], xmm2
movss dword [edi + 0x1d4], xmm3
movss xmm1, dword [edi + 0x1c8]
movss xmm0, dword [edi + 0x1cc]
movss xmm3, dword [esp + 0x90]
movss xmm5, dword [esp + 0x94]
maxss xmm1, xmm3
movss xmm7, dword [esp + 0x9c]
maxss xmm0, xmm5
movss dword [edi + 0x1c8], xmm1
movss dword [edi + 0x1cc], xmm0
movss xmm0, dword [edi + 0x1d4]
movss xmm1, dword [edi + 0x1d0]
minss xmm0, xmm7
minss xmm1, dword [esp + 0x98]
movss dword [edi + 0x1d4], xmm0
movss dword [edi + 0x1d0], xmm1
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [edi + 0x58]
movss dword [edi + 0x1d8], xmm0
movss xmm0, dword [edi + 0x5c]
addss xmm0, dword [edi + 0x1c]
movss dword [edi + 0x1dc], xmm0
movss xmm0, dword [edi + 0x20]
addss xmm0, dword [edi + 0x18]
subss xmm0, dword [edi + 0x60]
movss dword [edi + 0x1e0], xmm0
movss xmm0, dword [edi + 0x1c]
addss xmm0, dword [edi + 0x24]
subss xmm0, dword [edi + 0x64]
movss dword [edi + 0x1e4], xmm0
cmp eax, 1
jne 0x1005064a
movss xmm6, dword [edi + 0x54]
jmp 0x10050652
movss xmm6, dword [ecx + 0x38f0]
movss xmm0, dword [edi + 0x48]
movss xmm2, dword [0x1015ab28]
mulss xmm0, xmm2
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0x1d8]
addss xmm0, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [edi + 0x54]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1e8], xmm0
movss xmm0, dword [edi + 0x1dc]
addss xmm0, xmm2
addss xmm0, xmm6
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1ec], xmm0
movss xmm0, dword [edi + 0x48]
mulss xmm0, xmm2
movss xmm1, dword [edi + 0x1e0]
addss xmm1, xmm2
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm0, dword [edi + 0x54]
subss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1f0], xmm0
movss xmm0, dword [edi + 0x1e4]
addss xmm0, xmm2
subss xmm0, dword [edi + 0x54]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1f4], xmm0
movss xmm0, dword [edi + 0x1ec]
comiss xmm5, xmm0
jbe 0x1005072b
movaps xmm1, xmm5
jmp 0x10050732
movaps xmm1, xmm7
minss xmm1, xmm0
movss xmm2, dword [edi + 0x1e8]
comiss xmm3, xmm2
movss xmm6, dword [esp + 0x98]
jbe 0x1005074d
movaps xmm0, xmm3
jmp 0x10050754
movaps xmm0, xmm6
minss xmm0, xmm2
movss dword [edi + 0x1e8], xmm0
movss dword [edi + 0x1ec], xmm1
movss xmm0, dword [edi + 0x1f4]
comiss xmm5, xmm0
ja 0x10050778
movaps xmm5, xmm7
minss xmm5, xmm0
movss xmm0, dword [edi + 0x1f0]
comiss xmm3, xmm0
ja 0x1005078c
movaps xmm3, xmm6
minss xmm3, xmm0
movss dword [edi + 0x1f0], xmm3
movss dword [edi + 0x1f4], xmm5
movss xmm0, dword [edi + 0x20]
comiss xmm0, xmm4
jbe 0x100507b8
test edx, 0x2000040
jne 0x100507b8
mulss xmm0, dword [0x1015ab30]
jmp 0x100507c8
movss xmm0, dword [ecx + 0x3cf4]
mulss xmm0, dword [0x1015abd4]
cvttss2si eax, xmm0
mov edx, edi
lea ecx, [esp + 0xb8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x248], xmm0
movss xmm1, dword [edi + 0x48]
movss xmm0, dword [edi + 0x1e0]
addss xmm1, xmm1
subss xmm0, dword [edi + 0x1d8]
addss xmm1, dword [edi + 0x30]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [edi + 0x84], xmm0
movss xmm1, dword [edi + 0x4c]
movss xmm0, dword [edi + 0x1e4]
addss xmm1, xmm1
subss xmm0, dword [edi + 0x1dc]
addss xmm1, dword [edi + 0x34]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [edi + 0x88], xmm0
call fcn.100550b0
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [esp + 0x2c]
movss dword [edi + 0x7c], xmm0
movss dword [edi + 0x80], xmm1
mov dword [edi + 0x8c], 0x7f7fffff
mov dword [edi + 0x90], 0x7f7fffff
mov ecx, dword [edi + 0x26c]
mov dword [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov eax, dword [eax + 0x3cf0]
mov eax, dword [eax + 0x30]
push dword [eax + 4]
call fcn.1007e7e0
push 0
lea edx, [esp + 0x9c]
lea ecx, [esp + 0x94]
call fcn.1004b950
add esp, 4
mov byte [esp + 0x12], 0
cmp dword [esp + 0x28], 0
je 0x10050983
cmp dword [esp + 0x30], 0
jne 0x10050983
cmp dword [esp + 0x34], 0x3000000
je 0x10050983
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x188]
cmp ecx, 2
jl 0x10050947
mov eax, dword [eax + 0x190]
mov eax, dword [eax + ecx*4 - 8]
test eax, eax
je 0x10050947
movss xmm5, dword [eax + 0x1c]
movss xmm7, dword [eax + 0x18]
movaps xmm0, xmm5
addss xmm0, dword [eax + 0x24]
movss xmm6, dword [edi + 0x18]
movaps xmm3, xmm7
movss xmm2, dword [edi + 0x1c]
movaps xmm4, xmm6
addss xmm3, dword [eax + 0x20]
addss xmm4, dword [edi + 0x20]
comiss xmm0, dword [edi + 0x1c]
addss xmm2, dword [edi + 0x24]
jbe 0x10050947
comiss xmm2, xmm5
jbe 0x10050947
comiss xmm3, xmm6
jbe 0x10050947
comiss xmm4, xmm7
mov byte [esp + 0x11], 1
ja 0x1005094c
mov byte [esp + 0x11], 0
mov edx, dword [edi + 0x26c]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x10050983
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x26c]
cmp dword [eax + 0x18], 0
je 0x10050983
cmp byte [esp + 0x11], 0
jne 0x10050983
mov byte [esp + 0x12], 1
mov dword [edi + 0x26c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x4ba0]
test ecx, ecx
jne 0x10050997
mov ecx, dword [eax + 0x49f0]
cmp byte [esp + 0x3c], 0
jne 0x100509b7
test ecx, ecx
je 0x100509b0
mov eax, dword [edi + 0x310]
cmp eax, dword [ecx + 0x310]
je 0x100509b7
mov byte [esp + 0x1c], 0
jmp 0x100509bc
mov byte [esp + 0x1c], 1
movd xmm0, esi
lea eax, [esp + 0x120]
push ecx
cvtdq2ps xmm0, xmm0
lea edx, [esp + 0x78]
movss dword [esp], xmm0
push eax
push dword [esp + 0x64]
push ecx
push dword [esp + 0x2c]
mov ecx, edi
call fcn.1004e810
add esp, 0x14
cmp byte [esp + 0x12], 0
je 0x100509fb
lea eax, [edi + 0x270]
mov dword [edi + 0x26c], eax
mov ecx, dword [esp + 0x14]
xorps xmm4, xmm4
movss xmm3, dword [edi + 0x40]
mov edx, ecx
shr edx, 3
not dl
and dl, 1
ucomiss xmm3, xmm4
lahf
test ah, 0x44
jp 0x10050a56
movss xmm0, dword [edi + 0x48]
mov eax, ecx
movss xmm1, dword [edi + 0x20]
addss xmm0, xmm0
and eax, 0x808
subss xmm1, xmm0
movss xmm0, dword [edi + 0x58]
addss xmm0, dword [edi + 0x60]
subss xmm1, xmm0
cmp eax, 0x800
jne 0x10050a4f
movss xmm3, dword [edi + 0x30]
jmp 0x10050a52
xorps xmm3, xmm3
maxss xmm3, xmm1
movss xmm2, dword [edi + 0x44]
ucomiss xmm2, xmm4
lahf
test ah, 0x44
jp 0x10050a96
movss xmm0, dword [edi + 0x4c]
movss xmm1, dword [edi + 0x24]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [edi + 0x64]
addss xmm0, dword [edi + 0x5c]
subss xmm1, xmm0
test dl, dl
je 0x10050a8f
movss xmm2, dword [edi + 0x34]
jmp 0x10050a92
xorps xmm2, xmm2
maxss xmm2, xmm1
movss xmm1, dword [edi + 0x48]
maxss xmm1, dword [edi + 0x54]
movss xmm0, dword [edi + 0x1d8]
subss xmm0, dword [edi + 0x7c]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1f8], xmm0
movss xmm1, dword [edi + 0x4c]
movss xmm0, dword [edi + 0x1dc]
subss xmm0, dword [edi + 0x80]
maxss xmm1, dword [edi + 0x54]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1fc], xmm0
addss xmm3, dword [edi + 0x1f8]
movss dword [edi + 0x200], xmm3
addss xmm2, dword [edi + 0x1fc]
movss dword [edi + 0x204], xmm2
movups xmm0, xmmword [edi + 0x1f8]
movups xmmword [edi + 0x208], xmm0
movss xmm0, dword [edi + 0x18]
subss xmm0, dword [edi + 0x7c]
addss xmm0, dword [edi + 0x48]
addss xmm0, dword [edi + 0x58]
movss dword [edi + 0x228], xmm0
movss xmm0, dword [edi + 0x1c]
subss xmm0, dword [edi + 0x80]
addss xmm0, dword [edi + 0x4c]
addss xmm0, dword [edi + 0x5c]
movss dword [edi + 0x22c], xmm0
movss xmm1, dword [edi + 0x40]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10050b8c
movss xmm0, dword [edi + 0x48]
movss xmm1, dword [edi + 0x20]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [edi + 0x58]
addss xmm0, dword [edi + 0x60]
subss xmm1, xmm0
addss xmm1, dword [edi + 0x228]
movss dword [edi + 0x230], xmm1
movss xmm1, dword [edi + 0x44]
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jp 0x10050bca
movss xmm0, dword [edi + 0x4c]
movss xmm1, dword [edi + 0x24]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [edi + 0x64]
addss xmm0, dword [edi + 0x5c]
subss xmm1, xmm0
addss xmm1, dword [edi + 0x22c]
mov esi, dword [esp + 0x2c]
push dword [esp + 0x38]
movss dword [edi + 0x234], xmm1
movss xmm0, dword [edi + 0x58]
addss xmm0, dword [edi + 0x48]
subss xmm0, dword [edi + 0x7c]
movss dword [edi + 0x13c], xmm0
mov dword [edi + 0x144], 0
mov dword [edi + 0x140], 0
movss xmm3, dword [edi + 0x48]
movss xmm0, dword [edi + 0x18]
movss xmm2, dword [edi + 0x4c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm3, xmm3
cvtps2pd xmm2, xmm2
addsd xmm3, xmm0
movss xmm0, dword [edi + 0x7c]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [edi + 0x58]
cvtps2pd xmm0, xmm0
addsd xmm3, xmm0
movss xmm0, dword [edi + 0x1c]
cvtps2pd xmm0, xmm0
addsd xmm3, qword [0x1015aad0]
addsd xmm2, xmm0
movss xmm0, dword [edi + 0x80]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movss xmm0, dword [edi + 0x5c]
cvtps2pd xmm0, xmm0
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm3
cvtpd2ps xmm1, xmm2
movss dword [edi + 0x108], xmm0
movss dword [edi + 0x10c], xmm1
movss xmm0, dword [edi + 0x108]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [edi + 0x10c]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
subsd xmm2, xmm0
movss dword [edi + 0x148], xmm1
cvtpd2ps xmm0, xmm2
movss dword [edi + 0x14c], xmm0
movss xmm0, dword [edi + 0x108]
movss xmm1, dword [edi + 0x10c]
movss dword [edi + 0xf8], xmm0
movss dword [edi + 0xfc], xmm1
movss dword [edi + 0x100], xmm0
movss dword [edi + 0x104], xmm1
mov eax, dword [edi + 0x108]
mov ecx, dword [edi + 0x10c]
mov dword [edi + 0x110], eax
mov dword [edi + 0x114], ecx
mov eax, dword [edi + 0x108]
mov ecx, dword [edi + 0x10c]
mov dword [edi + 0x118], eax
mov dword [edi + 0x11c], ecx
lea ecx, [edi + 0x164]
mov dword [edi + 0x128], 0
mov dword [edi + 0x12c], 0
mov dword [edi + 0x120], 0
mov dword [edi + 0x124], 0
mov dword [edi + 0x134], 0
mov dword [edi + 0x130], 0
mov word [edi + 0x138], 0
mov dword [edi + 0x150], 0
mov ax, word [edi + 0x156]
mov word [edi + 0x154], ax
mov dword [edi + 0x156], 0x10000
movss xmm0, dword [edi + 0x88]
comiss xmm0, xmm4
seta al
mov byte [edi + 0x15a], al
mov byte [edi + 0x15b], 0
movss xmm1, dword [esi + 0x38f4]
call fcn.10069430
mov dword [edi + 0x180], 0
push ecx
lea ecx, [edi + 0x188]
mov dword [edi + 0x184], 0
call fcn.1005d080
lea eax, [edi + 0x24c]
mov dword [edi + 0x194], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x198], 0
mov dword [edi + 0x1a0], 1
test eax, eax
je 0x10050e03
mov eax, dword [eax + 0x1a0]
jmp 0x10050e08
mov eax, 1
mov dword [edi + 0x1a4], eax
mov eax, dword [edi + 0x248]
push ecx
mov dword [edi + 0x1a8], eax
lea ecx, [edi + 0x1b0]
mov dword [edi + 0x1ac], 0xbf800000
call fcn.1005db00
push ecx
lea ecx, [edi + 0x1bc]
call fcn.1005db00
mov al, byte [edi + 0xcc]
test al, al
jle 0x10050e4e
dec al
mov byte [edi + 0xcc], al
mov al, byte [edi + 0xcd]
test al, al
jle 0x10050e60
dec al
mov byte [edi + 0xcd], al
cmp byte [esp + 0x3c], 0
je 0x10050e84
mov edx, 2
mov ecx, edi
call fcn.100514c0
cmp edi, dword [esi + 0x49f0]
jne 0x10050e84
xor dl, dl
mov ecx, edi
call fcn.100573a0
test byte [esp + 0x14], 1
jne 0x10050eea
movss xmm1, dword [esp + 0x6c]
lea edx, [esp + 0x90]
addss xmm1, dword [edi + 0x54]
movss xmm0, dword [esp + 0x20]
push ecx
push dword [esp + 0x68]
mov ecx, edi
movss dword [esp + 0xa4], xmm0
movss dword [esp + 0x98], xmm1
movss xmm1, dword [esp + 0x8c]
movss dword [esp + 0x9c], xmm1
movss xmm1, dword [esp + 0x4c]
subss xmm1, dword [edi + 0x54]
movss dword [esp + 0xa0], xmm1
call fcn.1004ed10
add esp, 8
xor eax, eax
lea edx, [esp + 0x7c]
mov dword [edi + 0x238], eax
lea eax, [esp + 0x74]
push eax
push ecx
push 0
mov ecx, eax
call fcn.10052b30
mov edx, dword [esi + 0x48a8]
add esp, 8
mov ecx, dword [edi + 0x74]
movzx eax, al
push eax
call fcn.1004a3f0
mov eax, dword [esi + 0x48ac]
add esp, 8
test eax, eax
je 0x10050f4c
cmp dword [edi + 8], eax
je 0x10050f31
cmp dword [edi + 0x74], eax
jne 0x10050f4c
call fcn.1005b050
jmp 0x10050f4c
mov ecx, edi
call fcn.10049b00
mov eax, dword [esp + 0x14]
and eax, 0x1000000
mov dword [esp + 0x28], eax
push 1
lea edx, [edi + 0x1f0]
lea ecx, [edi + 0x1e8]
call fcn.1004b950
mov eax, dword [esp + 0x54]
add esp, 4
mov byte [edi + 0xb0], 0
inc word [edi + 0xbc]
mov dword [esi + 0x490c], 0
cmp eax, dword [esp + 0x48]
je 0x100510f0
cmp dword [esp + 0x28], 0
je 0x1005105a
cmp dword [esp + 0x54], 0
jne 0x1005105a
test dword [esp + 0x14], 0x800000
je 0x10050fcd
cmp byte [esi + 0x4a34], 0
je 0x10050fcd
mov eax, dword [esi + 0x49f0]
test eax, eax
je 0x10050fcd
mov eax, dword [eax + 0x314]
cmp eax, dword [edi + 0x314]
jne 0x10050fcd
mov al, 1
jmp 0x10050fcf
xor al, al
cmp byte [esi + 0x5d98], 0
jne 0x10051020
test al, al
jne 0x10051020
movss xmm0, dword [edi + 0x1c8]
comiss xmm0, dword [edi + 0x1d0]
jae 0x10050ffe
movss xmm0, dword [edi + 0x1cc]
comiss xmm0, dword [edi + 0x1d4]
jb 0x10051020
cmp byte [edi + 0xcc], 0
jg 0x10051019
cmp byte [edi + 0xcd], 0
jg 0x10051019
mov byte [edi + 0xd4], 1
jmp 0x10051020
mov byte [edi + 0xd5], 1
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1005105a
cmp byte [eax + 0xb1], 0
jne 0x1005103a
cmp byte [eax + 0xd4], 0
jle 0x10051041
mov byte [edi + 0xd4], 1
cmp byte [eax + 0xb1], 0
jne 0x10051053
cmp byte [eax + 0xd5], 0
jle 0x1005105a
mov byte [edi + 0xd5], 1
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x38a8]
jb 0x1005106d
mov byte [edi + 0xd4], 1
cmp byte [edi + 0xd4], 0
jg 0x1005108d
cmp byte [edi + 0xd5], 0
jg 0x1005108d
xor cl, cl
cmp byte [edi + 0xd6], cl
jg 0x1005108f
xor al, al
jmp 0x10051091
mov cl, 1
mov al, 1
mov byte [edi + 0xb5], al
mov al, byte [edi + 0xd7]
test al, al
jle 0x100510b0
dec al
mov byte [edi + 0xd7], al
or dword [edi + 0xc], 0x30200
xor al, al
cmp byte [edi + 0xb1], al
jne 0x100510c6
cmp byte [edi + 0xae], al
je 0x100510c6
test cl, cl
je 0x100510ea
cmp byte [edi + 0xcc], 0
jg 0x100510ea
cmp byte [edi + 0xcd], 0
jg 0x100510ea
cmp byte [edi + 0xd5], 0
mov ecx, 1
movzx eax, al
cmovle eax, ecx
mov byte [edi + 0xb3], al
cmp byte [edi + 0xb6], 0
jne 0x10051155
cmp byte [esi + 0x64], 0
je 0x10051106
cmp dword [esp + 0x68], 0
je 0x1005111b
cmp byte [esi + 0x65], 0
je 0x10051155
movsx eax, byte [esi + 0x5dee]
cmp eax, dword [esi + 0x3f64]
jne 0x10051155
mov al, byte [edi + 0xcc]
test al, al
jle 0x1005112d
inc al
mov byte [edi + 0xcc], al
mov al, byte [edi + 0xcd]
test al, al
jle 0x1005113f
inc al
mov byte [edi + 0xcd], al
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x134]
xor ecx, esp
call fcn.1010a62a
mov esp, ebp
pop ebp
ret
cmp byte [edi + 0xb3], 0
mov ecx, dword [esp + 0x13c]
pop edi
sete al
pop esi
xor ecx, esp
call fcn.1010a62a
mov esp, ebp
pop ebp
ret