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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x270
mov ecx, dword [ebp + 8]
mov eax, dword [0x1058eba8]
mov dword [esp + 4], eax
movzx ebx, byte [ecx]
test bl, bl
je 0x1009d664
add ecx, 2
mov edx, 0xffffffff
mov eax, 0xffffffff
jmp 0x1009d649
movzx esi, bl
movzx edi, al
shr eax, 8
xor edi, esi
xor eax, dword [edi*4 + 0x1048cb9c]
inc ecx
mov bl, bh
test bh, bh
je 0x1009d660
mov bh, byte [ecx - 1]
cmp bl, 0x23
jne 0x1009d630
cmp bh, 0x23
jne 0x1009d630
cmp byte [ecx], 0x23
cmove eax, edx
mov bh, 0x23
jmp 0x1009d630
not eax
jmp 0x1009d666
xor eax, eax
mov ecx, dword [esp + 4]
mov edi, dword [ecx + 0x1ba4]
mov esi, dword [ecx + 0x1bac]
mov ecx, esi
mov edx, edi
mov dword [esp + 8], edi
test edi, edi
je 0x1009d6ad
mov ecx, esi
mov edx, dword [esp + 8]
nop dword [eax + eax]
mov edi, edx
shr edi, 1
mov ebx, edi
not ebx
add ebx, edx
cmp dword [ecx + edi*8], eax
lea edx, [ecx + edi*8 + 8]
cmovae ebx, edi
cmovb ecx, edx
mov edx, ebx
test ebx, ebx
jne 0x1009d690
mov edx, dword [esp + 8]
lea edx, [esi + edx*8]
cmp ecx, edx
je 0x1009d6d4
cmp dword [ecx], eax
jne 0x1009d6d4
mov esi, dword [ecx + 4]
xor eax, eax
mov dword [esp + 0xc0], 0
test esi, esi
jne 0x1009da6c
mov eax, dword [esp + 4]
lea edi, [eax + 0x1ba4]
test eax, eax
je 0x1009d6ec
mov eax, dword [esp + 4]
inc dword [eax + 0x36c]
push dword [0x1058ebb0]
push 0x334
call dword [0x10584f34]
add esp, 8
mov esi, eax
mov ecx, eax
push dword [ebp + 8]
push dword [esp + 8]
call fcn.10095670
mov dword [esp + 0x230], esi
mov ebx, dword [ebp + 0x10]
mov dword [esi + 8], ebx
mov ecx, edi
push esi
push dword [esi + 4]
call fcn.10093a60
mov eax, dword [0x1058eba8]
mov ecx, dword [eax + 0x1d4c]
mov ecx, dword [ecx]
movsd xmm0, qword [ecx + 4]
addps xmm0, xmmword [0x1048d4a0]
movlps qword [esi + 0xc], xmm0
test ebx, 0x100
jne 0x1009d7ef
mov edx, dword [eax + 0x2f54]
test edx, edx
je 0x1009d7ef
mov edi, dword [esi + 4]
add edx, 4
mov ecx, edx
nop word [eax + eax]
cmp dword [ecx], edi
je 0x1009d785
add ecx, dword [ecx - 4]
mov ebx, dword [eax + 0x2f4c]
add ebx, edx
cmp ecx, ebx
jne 0x1009d770
jmp 0x1009d7ef
mov edx, ecx
mov edi, dword [esp + 4]
sub edx, dword [edi + 0x2f54]
mov dword [esi + 0x254], edx
and dword [esi + 0xb4], 0xfffbfbfb
movd xmm0, dword [ecx + 4]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
movlps qword [esi + 0xc], xmm0
movzx edx, word [ecx + 8]
test dx, dx
jle 0x1009d7e5
movzx edi, word [ecx + 0xa]
test di, di
jle 0x1009d7e5
xorps xmm0, xmm0
pinsrw xmm0, edx, 1
pinsrw xmm0, edi, 3
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
movlhps xmm0, xmm0
movups xmmword [esi + 0x14], xmm0
movzx ecx, byte [ecx + 0xc]
mov byte [esi + 0x91], cl
movq xmm0, qword [esi + 0xc]
pshufd xmm0, xmm0, 0x44
movdqu xmmword [esi + 0xe4], xmm0
mov ecx, dword [ebp + 0x10]
test cl, 0x40
jne 0x1009d83e
pxor xmm0, xmm0
ucomiss xmm0, dword [esi + 0x14]
jb 0x1009d81a
mov byte [esi + 0xa8], 2
ucomiss xmm0, dword [esi + 0x18]
jb 0x1009d827
mov byte [esi + 0xa9], 2
mov cl, 1
cmp byte [esi + 0xa8], 0
jg 0x1009d849
cmp byte [esi + 0xa9], 0
setg cl
jmp 0x1009d849
mov word [esi + 0xa8], 0x202
xor ecx, ecx
mov byte [esi + 0xab], cl
test dword [ebp + 0x10], 0x1000000
jne 0x1009d94f
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x1b80]
cmp ecx, dword [edx + 0x1b84]
jne 0x1009d925
lea edi, [ecx + 1]
test ecx, ecx
je 0x1009d886
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
add edx, ecx
jmp 0x1009d88b
mov edx, 8
cmp edx, edi
cmovg edi, edx
cmp ecx, edi
jge 0x1009d925
lea ecx, [edi*4]
inc dword [eax + 0x36c]
push dword [0x1058ebb0]
push ecx
call dword [0x10584f34]
add esp, 8
mov edx, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1b88]
test eax, eax
je 0x1009d90f
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + 0x1b80]
shl ecx, 2
push ecx
push eax
mov dword [esp + 0x10], edx
push edx
call fcn.10368490
add esp, 0xc
mov eax, dword [ebx + 0x1b88]
test eax, eax
je 0x1009d8fb
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009d8fb
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
mov dword [eax + 0x1b88], edx
mov dword [eax + 0x1b84], edi
mov ecx, dword [eax + 0x1b80]
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x1b88]
mov dword [eax + ecx*4], esi
mov eax, dword [edx + 0x1b80]
lea ecx, [eax + 1]
mov dword [edx + 0x1b80], ecx
mov esi, dword [esp + 0x230]
mov word [esi + 0xa0], ax
test dword [ebp + 0x10], 0x2000
jne 0x1009d982
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x1b74]
cmp eax, dword [ecx + 0x1b78]
jne 0x1009da47
lea edi, [eax + 1]
test eax, eax
je 0x1009d99e
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1009d9a3
mov eax, dword [esp + 4]
lea ecx, [eax + 0x1b74]
lea eax, [esp + 0x230]
push eax
call fcn.100ac590
jmp 0x1009da5a
mov ecx, 8
cmp ecx, edi
cmovg edi, ecx
cmp eax, edi
jge 0x1009da47
lea eax, [edi*4]
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009d9c7
inc dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f34]
add esp, 8
mov edx, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1b7c]
test eax, eax
je 0x1009da31
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + 0x1b74]
shl ecx, 2
push ecx
push eax
mov dword [esp + 0x10], edx
push edx
call fcn.10368490
add esp, 0xc
mov eax, dword [ebx + 0x1b7c]
test eax, eax
je 0x1009da1d
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009da1d
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
mov dword [eax + 0x1b7c], edx
mov dword [eax + 0x1b78], edi
mov eax, dword [eax + 0x1b74]
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x1b7c]
mov dword [ecx + eax*4], esi
inc dword [edx + 0x1b74]
mov esi, dword [esp + 0x230]
mov al, 1
mov cl, 1
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xd0], eax
mov edx, dword [ebp + 0x10]
mov eax, edx
not eax
mov ecx, edx
or ecx, 6
test eax, 0xc0200
cmovne ecx, edx
mov eax, dword [esp + 4]
mov ebx, dword [eax + 0x1b58]
cmp dword [eax + 0x1b98], 0
je 0x1009da9e
xor eax, eax
jmp 0x1009daa9
mov eax, dword [esp + 4]
movzx eax, byte [eax + 0x1b65]
mov edx, dword [esi + 0x22c]
mov byte [esi + 0x96], al
lea eax, [ebx - 1]
test ecx, 0x4000000
mov dword [esp + 8], esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x2c], edx
jne 0x1009dae5
lea edi, [esi + 0x94]
mov dword [esp + 0x60], edi
cmp edx, eax
setl byte [esi + 0x94]
jge 0x1009db5d
mov edi, ebx
jmp 0x1009db3d
mov edi, ecx
cmp edx, eax
setl al
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x1d28]
mov edx, dword [edx + 0x1d2c]
lea edx, [edx + edx*8]
mov esi, dword [esp + 8]
mov esi, dword [esi + 0xa4]
xor esi, dword [ecx + edx*4]
mov ecx, dword [ecx + edx*4 + 4]
xor ecx, dword [esp + 8]
or ecx, esi
mov esi, dword [esp + 8]
setne cl
or cl, al
lea eax, [esi + 0x94]
mov dword [esp + 0x60], eax
mov byte [esi + 0x94], cl
test cl, cl
je 0x1009db70
mov ecx, edi
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c]
or dword [esi + 0xb4], 0x80808
mov al, 1
mov dword [esp + 0x120], eax
cmp edx, edi
jne 0x1009db89
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
jmp 0x1009dbd1
mov dword [esp + 0x120], 0
mov edi, ebx
cmp edx, edi
je 0x1009db54
jmp 0x1009db89
mov dword [esp + 0x120], 0
mov ecx, edi
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c]
cmp edx, edi
je 0x1009db54
mov dword [esp + 0xc], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0x22c], edi
mov ebx, edx
mov edx, dword [esp + 4]
movsd xmm0, qword [edx + 0x1b50]
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x230], xmm0
mov word [esi + 0x9c], 0
mov eax, dword [edx + 0x1bb0]
lea ecx, [eax + 1]
mov dword [edx + 0x1bb0], ecx
mov edx, ebx
mov word [esi + 0x9e], ax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1b98]
test eax, eax
je 0x1009dbfd
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x1ba0]
lea edx, [eax + eax*2]
shl edx, 4
mov ecx, dword [edx + ecx - 0x30]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x2c]
jmp 0x1009dc05
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0xc]
cmp edx, edi
jne 0x1009dc26
mov ecx, dword [esi + 0x2ec]
mov dword [esp + 0x28], ecx
cmp dword [esi + 0xc8], 0
jne 0x1009dcfc
jmp 0x1009dc48
and ecx, 0x5000000
mov ebx, edi
mov edi, dword [esp + 0x28]
cmove edi, ecx
mov dword [esp + 0x28], edi
mov edi, ebx
cmp dword [esi + 0xc8], 0
jne 0x1009dcfc
cmp dword [esi + 0xcc], 0
je 0x1009dc5e
mov edi, dword [esi + 0xd0]
xor eax, eax
jmp 0x1009dce2
mov eax, dword [0x1058eba8]
test eax, eax
je 0x1009dc6d
inc dword [eax + 0x36c]
push dword [0x1058ebb0]
push 0x20
call dword [0x10584f34]
add esp, 8
mov edi, eax
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x1009dcc8
mov ecx, dword [esi + 0xc8]
shl ecx, 2
push ecx
push eax
push edi
call fcn.10368490
add esp, 0xc
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x1009dcb8
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009dcb8
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov dword [esi + 0xd0], edi
mov dword [esi + 0xcc], 8
mov eax, dword [esi + 0xc8]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 4]
mov dword [edi + eax*4], ecx
inc dword [esi + 0xc8]
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1b98]
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 4]
movups xmm0, xmmword [ecx + 0x1c74]
movups xmmword [esp + 0x24c], xmm0
movups xmm0, xmmword [ecx + 0x1c58]
movups xmm1, xmmword [ecx + 0x1c68]
movaps xmmword [esp + 0x240], xmm1
movaps xmmword [esp + 0x230], xmm0
cmp eax, dword [ecx + 0x1b9c]
jne 0x1009ddfa
lea esi, [eax + 1]
test eax, eax
je 0x1009dd4d
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1009dd52
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x1009ddfa
mov eax, esi
shl eax, 4
lea eax, [eax + eax*2]
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009dd77
inc dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f34]
add esp, 8
mov edi, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1ba0]
test eax, eax
je 0x1009dddc
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + 0x1b98]
shl ecx, 4
lea ecx, [ecx + ecx*2]
push ecx
push eax
push edi
call fcn.10368490
add esp, 0xc
mov eax, dword [ebx + 0x1ba0]
test eax, eax
je 0x1009ddcc
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009ddcc
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov eax, dword [esp + 4]
mov dword [eax + 0x1ba0], edi
mov dword [eax + 0x1b9c], esi
mov eax, dword [eax + 0x1b98]
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x2c]
mov ebx, edx
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x1ba0]
lea eax, [eax + eax*2]
shl eax, 4
mov esi, dword [esp + 8]
mov dword [ecx + eax], esi
movups xmm0, xmmword [esp + 0x24c]
movups xmmword [ecx + eax + 0x20], xmm0
movdqa xmm0, xmmword [esp + 0x230]
movdqa xmm1, xmmword [esp + 0x240]
movdqu xmmword [ecx + eax + 0x14], xmm1
movdqu xmmword [ecx + eax + 4], xmm0
inc dword [edx + 0x1b98]
mov dword [edx + 0x1bbc], esi
mov eax, dword [0x1058eba8]
mov ecx, dword [eax + 0x1bbc]
movzx ecx, word [ecx + 0xc8]
mov word [esi + 0x1a4], cx
movzx ecx, word [eax + 0x1ce4]
mov word [esi + 0x1a6], cx
movzx ecx, word [eax + 0x1d38]
mov word [esi + 0x1a8], cx
movzx ecx, word [eax + 0x1cf0]
mov word [esi + 0x1aa], cx
movzx ecx, word [eax + 0x1cfc]
mov word [esi + 0x1ac], cx
movzx ecx, word [eax + 0x1d14]
mov word [esi + 0x1ae], cx
movzx eax, word [eax + 0x1d2c]
mov word [esi + 0x1b0], ax
mov dword [edx + 0x1bbc], 0
mov edx, ebx
mov ecx, dword [esp + 0xc]
test ecx, 0x4000000
je 0x1009e004
mov ebx, dword [esp + 4]
mov eax, dword [ebx + 0x1d28]
mov ecx, dword [ebx + 0x1d2c]
lea ecx, [ecx + ecx*8]
mov edx, esi
lea esi, [eax + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [ebx + 0x1d2c]
cmp eax, dword [ebx + 0x1d30]
jne 0x1009dfc2
lea ebx, [eax + 1]
test eax, eax
je 0x1009df15
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1009df1a
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x1009dfc2
lea eax, [ebx*4]
lea eax, [eax + eax*8]
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009df41
inc dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f34]
add esp, 8
mov edi, dword [esp + 4]
mov edx, dword [edi + 0x1d34]
test edx, edx
je 0x1009dfac
mov ecx, dword [edi + 0x1d2c]
shl ecx, 2
lea ecx, [ecx + ecx*8]
push ecx
push edx
mov dword [esp + 0x38], eax
push eax
call fcn.10368490
add esp, 0xc
mov eax, dword [edi + 0x1d34]
test eax, eax
je 0x1009df94
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009df94
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x30]
mov dword [edi + 0x1d34], eax
mov dword [edi + 0x1d30], ebx
mov eax, dword [edi + 0x1d2c]
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + 0x1d34]
lea eax, [eax + eax*8]
mov edx, dword [esi + 0x20]
mov dword [ecx + eax*4 + 0x20], edx
movdqu xmm0, xmmword [esi]
movdqu xmm1, xmmword [esi + 0x10]
movdqu xmmword [ecx + eax*4 + 0x10], xmm1
movdqu xmmword [ecx + eax*4], xmm0
inc dword [ebx + 0x1d2c]
mov eax, dword [esi]
mov esi, dword [esp + 8]
mov dword [esi + 0xa4], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
cmp edx, edi
je 0x1009e092
movd xmm0, esi
mov edi, dword [esp + 0x28]
movd xmm1, edi
punpckldq xmm1, xmm0
pshufd xmm0, xmm1, 0x54
movdqu xmmword [esi + 0x2ec], xmm0
mov eax, ecx
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x1009e047
test edi, edi
je 0x1009e047
mov eax, dword [edi + 0x2f0]
mov dword [esi + 0x2f0], eax
test ecx, 0x8000000
jne 0x1009e06f
mov eax, ecx
and eax, 0x5000000
je 0x1009e06f
cmp dword [esp + 0x28], 0
je 0x1009e06f
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x2f4]
mov dword [esi + 0x2f4], eax
test byte [esi + 0xa], 0x80
mov edi, dword [esp + 0x7c]
je 0x1009e092
mov eax, esi
nop dword [eax + eax]
mov eax, dword [eax + 0x2ec]
mov dword [esi + 0x2f8], eax
test byte [eax + 0xa], 0x80
jne 0x1009e080
mov eax, dword [esp + 4]
test byte [eax + 0x1c84], 1
jne 0x1009e0ac
mov dword [esp + 0x30], 0
jmp 0x1009e1b9
mov eax, dword [esi + 0xb4]
movsx edx, al
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x1c88]
test edx, ecx
setne dl
mov dword [esp + 0x30], edx
je 0x1009e133
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1c9c]
movss xmm1, dword [ecx + 0x1ca0]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
ucomiss xmm0, dword [0x1048d4b0]
jbe 0x1009e141
mov edx, dword [esp + 4]
movsd xmm0, qword [edx + 0x1c94]
movsd qword [esi + 0xb8], xmm0
mov ecx, dword [edx + 0x1c9c]
mov edx, dword [edx + 0x1ca0]
mov dword [esi + 0xc4], edx
mov dword [esi + 0xc0], ecx
and eax, 0xfffffff1
mov dword [esi + 0xb4], eax
mov al, 1
mov dword [esp + 0x30], eax
jmp 0x1009e1b5
test ecx, ecx
je 0x1009e141
mov dword [esp + 0x30], 0
jmp 0x1009e1b5
and eax, 0xfffffff1
mov dword [esi + 0xb4], eax
mov dword [esi + 0xb8], 0x7f7fffff
mov dword [esi + 0xbc], 0x7f7fffff
mov eax, dword [esp + 4]
movsd xmm0, qword [eax + 0x1c94]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movsd xmm1, qword [esi + 0xc]
movsd xmm2, qword [esi + 0xd4]
movlps qword [esi + 0xc], xmm0
subps xmm0, xmm1
addps xmm2, xmm0
movlps qword [esi + 0xd4], xmm2
movsd xmm1, qword [esi + 0xf4]
addps xmm1, xmm0
movlhps xmm0, xmm0
movlps qword [esi + 0xf4], xmm1
movups xmm1, xmmword [esi + 0xe4]
addps xmm1, xmm0
movups xmmword [esi + 0xe4], xmm1
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 4]
test byte [eax + 0x1c84], 2
jne 0x1009e1e1
mov dword [esp + 0xe0], 0
mov dword [esp + 0xb0], 0
jmp 0x1009e2e8
mov eax, dword [esi + 0xb4]
mov ecx, eax
shr ecx, 8
movsx edx, cl
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0x1c8c]
test edx, ecx
je 0x1009e2c6
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1ca4]
movss xmm1, dword [ecx + 0x1ca8]
xorps xmm2, xmm2
ucomiss xmm0, xmm2
seta cl
mov dword [esp + 0xb0], ecx
ucomiss xmm1, xmm2
seta cl
mov dword [esp + 0xe0], ecx
mov edx, dword [esp + 0x2c]
and eax, 0xfffff1ff
mov dword [esi + 0xb4], eax
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x1ca4]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x1009e276
mov byte [esi + 0xa8], 0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x1ca4]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x1c], xmm0
jmp 0x1009e284
mov byte [esi + 0xa8], 2
mov byte [esi + 0xab], 0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x1ca8]
ucomiss xmm0, xmm1
jbe 0x1009e2b6
mov byte [esi + 0xa9], 0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x1ca8]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x20], xmm0
jmp 0x1009e2e8
mov byte [esi + 0xa9], 2
mov byte [esi + 0xab], 0
jmp 0x1009e2e8
mov dword [esp + 0xe0], 0
mov dword [esp + 0xb0], 0
test ecx, ecx
mov edx, dword [esp + 0x2c]
je 0x1009e236
mov eax, dword [esp + 4]
test byte [eax + 0x1c84], 0x80
je 0x1009e333
mov eax, dword [esp + 4]
movss xmm1, dword [eax + 0x1cb4]
pxor xmm0, xmm0
ucomiss xmm1, xmm0
jb 0x1009e316
movss dword [esi + 0x6c], xmm1
mov dword [esi + 0x74], 0
mov eax, dword [esp + 4]
movss xmm1, dword [eax + 0x1cb8]
ucomiss xmm1, xmm0
jb 0x1009e333
movss dword [esi + 0x70], xmm1
mov dword [esi + 0x78], 0
mov eax, dword [esp + 4]
test byte [eax + 0x1c84], 4
jne 0x1009e354
cmp edx, edi
je 0x1009e365
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
jmp 0x1009e365
mov eax, dword [esp + 4]
movq xmm0, qword [eax + 0x1cac]
movq qword [esi + 0x34], xmm0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1c84]
test al, 8
je 0x1009e3c2
mov ecx, dword [esp + 4]
mov esi, dword [ecx + 0x1c90]
movzx ecx, byte [ecx + 0x1cbc]
mov edx, dword [esp + 8]
mov edx, dword [edx + 0xb4]
test esi, esi
je 0x1009e3a2
mov ebx, edx
shr ebx, 0x10
movsx edi, bl
test edi, esi
mov edi, dword [esp + 0x7c]
je 0x1009e3c2
and edx, 0xfff1ffff
mov eax, dword [esp + 8]
mov dword [eax + 0xb4], edx
mov byte [eax + 0x91], cl
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x1c84]
test al, 0x20
mov esi, dword [esp + 8]
je 0x1009e3d3
push esi
call fcn.10097c60
add esp, 4
mov eax, dword [esp + 0x60]
cmp byte [eax], 0
mov eax, dword [esp + 0x2c]
je 0x1009e3ea
and dword [esi + 0xb4], 0xfff7f7f7
cmp eax, edi
jne 0x1009e41e
mov ebx, dword [0x1058eba8]
mov dword [ebx + 0x1bbc], esi
mov eax, dword [esi + 0x170]
cmp eax, 0xffffffff
mov ecx, dword [esp + 0xc]
je 0x1009e6d5
imul eax, eax, 0x1c8
add eax, dword [ebx + 0x1f34]
jmp 0x1009e6d7
mov byte [esi + 0x8e], 1
cmp dword [ebp + 0xc], 0
setne byte [esi + 0x97]
movaps xmm0, xmmword [0x1048d4c0]
movups xmmword [esi + 0x204], xmm0
mov eax, dword [esi + 0xcc]
test eax, eax
jg 0x1009e4f0
mov ecx, eax
neg ecx
shr ecx, 1
mov edx, eax
sub edx, ecx
cmp edx, 2
mov ecx, 1
cmovge ecx, edx
test eax, eax
mov edi, 8
cmovne edi, ecx
lea eax, [edi*4]
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009e482
inc dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f34]
add esp, 8
mov ebx, eax
mov esi, dword [esp + 8]
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x1009e4e4
mov ecx, dword [esi + 0xc8]
shl ecx, 2
push ecx
push eax
push ebx
call fcn.10368490
add esp, 0xc
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x1009e4d0
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009e4d0
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov esi, dword [esp + 8]
mov dword [esi + 0xd0], ebx
mov dword [esi + 0xcc], edi
mov dword [esi + 0xc8], 1
mov ecx, dword [esi + 0x258]
call fcn.100ad630
mov dword [esi + 0x170], 0xffffffff
cmp byte [esi + 0x330], 0
je 0x1009e521
push esi
call fcn.10096160
add esp, 4
mov eax, dword [esp + 4]
cmp dword [eax + 0x1e60], 0
je 0x1009e5cd
movzx eax, byte [esi + 0xa]
and al, 8
shr al, 3
or al, byte [esp + 0xc0]
jne 0x1009e5cd
mov edi, dword [esi]
push edi
push dword [ebp + 8]
call fcn.10380620
add esp, 8
test eax, eax
je 0x1009e5cd
mov esi, dword [esi + 0x4c]
push dword [ebp + 8]
call fcn.103808a0
add esp, 4
mov ebx, eax
inc ebx
cmp esi, ebx
jae 0x1009e5b5
test edi, edi
je 0x1009e582
mov eax, dword [0x1058eba8]
test eax, eax
je 0x1009e582
dec dword [eax + 0x36c]
push dword [0x1058ebb0]
push edi
call dword [0x10584f38]
add esp, 8
mov eax, dword [0x1058eba8]
test eax, eax
je 0x1009e5a1
inc dword [eax + 0x36c]
push dword [0x1058ebb0]
push ebx
call dword [0x10584f34]
add esp, 8
mov edi, eax
mov esi, ebx
push ebx
push dword [ebp + 8]
push edi
call fcn.10368490
add esp, 0xc
mov eax, dword [esp + 8]
mov dword [eax], edi
mov dword [eax + 0x4c], esi
mov esi, eax
movzx eax, byte [esi + 0xb1]
mov byte [esp + 0xa0], al
lea edi, [esi + 0x2c]
lea edx, [esi + 0x24]
mov ecx, esi
mov dword [esp + 0x158], edx
push edi
call fcn.100a88f0
add esp, 4
movzx eax, byte [esi + 0xb0]
test al, al
jle 0x1009e606
dec al
mov byte [esi + 0xb0], al
movzx eax, byte [esi + 0xb1]
test al, al
mov ecx, dword [esp + 0xc]
jle 0x1009e61d
dec al
mov byte [esi + 0xb1], al
movzx eax, byte [esi + 0xb2]
test al, al
jle 0x1009e630
dec al
mov byte [esi + 0xb2], al
cmp byte [esp + 0xc0], 0
je 0x1009e651
mov eax, dword [esp + 0xb0]
and al, byte [esp + 0xe0]
jne 0x1009e651
mov byte [esi + 0xb1], 1
test ecx, 0x6000000
setne al
and al, byte [esp + 0x120]
cmp al, 1
jne 0x1009e6ae
mov byte [esi + 0xb1], 1
test cl, 0x40
je 0x1009e6ae
cmp byte [esp + 0xb0], 0
jne 0x1009e689
mov dword [esi + 0x1c], 0
mov dword [esi + 0x14], 0
cmp byte [esp + 0xe0], 0
jne 0x1009e6a1
mov dword [esi + 0x20], 0
mov dword [esi + 0x18], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x158]
movups xmmword [eax], xmm0
mov eax, esi
mov esi, dword [0x1058eba8]
mov dword [esi + 0x1bbc], eax
mov eax, dword [eax + 0x170]
cmp eax, 0xffffffff
je 0x1009e71a
imul eax, eax, 0x1c8
add eax, dword [esi + 0x1f34]
jmp 0x1009e71c
xor eax, eax
mov dword [ebx + 0x1f24], eax
movss xmm0, dword [ebx + 0x194c]
mulss xmm0, dword [esi + 0x250]
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x1009e6ff
mulss xmm0, dword [eax + 0x250]
movss dword [ebx + 0x195c], xmm0
movss dword [ebx + 0x1948], xmm0
and ecx, 0x1000000
jmp 0x100a1f08
xor eax, eax
mov edx, ecx
and edx, 0x1000000
mov dword [esp + 0x58], edx
mov dword [esi + 0x1f24], eax
movss xmm0, dword [esi + 0x194c]
mov eax, dword [esp + 8]
mulss xmm0, dword [eax + 0x250]
mov eax, dword [eax + 0x2ec]
test eax, eax
je 0x1009e754
mulss xmm0, dword [eax + 0x250]
movss dword [esi + 0x195c], xmm0
movss dword [esi + 0x1948], xmm0
cmp dword [esp + 0x58], 0
jne 0x1009e7b7
test ecx, 0x8000000
mov eax, 0x1548
mov ecx, 0x1524
cmovne eax, ecx
test dword [esp + 0xc], 0x6000000
cmove eax, ecx
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + eax]
mov edx, dword [esp + 8]
movss dword [edx + 0x48], xmm0
mov eax, dword [ecx + 0x1518]
mov ecx, dword [ecx + 0x151c]
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0xc]
mov dword [edx + 0x3c], eax
movd xmm0, eax
jmp 0x1009e82b
mov ecx, dword [esp + 4]
movss xmm2, dword [ecx + 0x1540]
mov edx, dword [esp + 8]
movss dword [edx + 0x48], xmm2
mov eax, dword [ecx + 0x1518]
mov ecx, dword [ecx + 0x151c]
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0xc]
mov dword [edx + 0x3c], eax
movd xmm0, eax
test ecx, 0x4010000
jne 0x1009e827
pxor xmm1, xmm1
ucomiss xmm2, xmm1
mov edx, dword [esp + 8]
jne 0x1009e82b
jp 0x1009e82b
test ecx, 0x400
je 0x1009e811
mov eax, dword [esp + 4]
movss xmm1, dword [eax + 0x151c]
mov edx, dword [esp + 8]
mov dword [edx + 0x3c], 0
movss dword [edx + 0x40], xmm1
pxor xmm0, xmm0
jmp 0x1009e82b
mov edx, dword [esp + 8]
cmp dword [esp + 0x58], 0
setne byte [esp + 0x80]
mov eax, dword [esp + 4]
movss xmm1, dword [eax + 0x1cdc]
movss xmm2, dword [eax + 0x155c]
movaps xmm3, xmm2
cmpless xmm3, xmm0
andps xmm0, xmm3
andnps xmm3, xmm2
orps xmm3, xmm0
movaps xmm0, xmm1
cmpless xmm0, xmm3
movaps xmm2, xmm0
andps xmm2, xmm3
andnps xmm0, xmm1
orps xmm0, xmm2
movss dword [edx + 0x130], xmm0
movss xmm0, dword [eax + 0x1ce0]
movss dword [edx + 0x134], xmm0
test cl, 0x21
je 0x1009e89c
mov byte [edx + 0x91], 0
mov esi, edx
jmp 0x1009e99b
movss xmm0, dword [edx + 0x10]
mov ebx, dword [edx + 8]
xorps xmm1, xmm1
test bl, 1
jne 0x1009e8e2
movss xmm2, dword [esi + 0x194c]
mulss xmm2, dword [edx + 0x250]
mov eax, dword [edx + 0x2ec]
test eax, eax
je 0x1009e8ce
mulss xmm2, dword [eax + 0x250]
movss xmm1, dword [esi + 0x1550]
addss xmm1, xmm1
addss xmm1, xmm2
mov edx, dword [esp + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
movss xmm2, dword [edx + 0xc]
unpcklps xmm2, xmm0
movss xmm0, dword [edx + 0x1c]
unpcklps xmm0, xmm1
addps xmm0, xmm2
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
movlps qword [esp + 0x18], xmm0
mov eax, dword [esp + 4]
cmp dword [eax + 0x1bc0], edx
jne 0x1009e95e
mov eax, dword [esp + 4]
cmp dword [eax + 0x1bdc], 0
jne 0x1009e95e
mov eax, dword [esp + 4]
cmp dword [eax + 0x1be0], 0
jne 0x1009e95e
lea eax, [esp + 0x18]
lea ecx, [esp + 0x10]
push 1
push eax
push ecx
call fcn.100967a0
add esp, 0xc
test al, al
je 0x1009e95e
mov eax, dword [esp + 4]
cmp byte [eax + 0x3dd], 0
je 0x1009e95e
mov eax, dword [esp + 8]
mov byte [eax + 0x92], 1
mov eax, dword [esp + 8]
cmp byte [eax + 0x92], 0
je 0x1009e997
mov eax, dword [esp + 8]
xor byte [eax + 0x91], 1
test ebx, 0x100
jne 0x1009e997
xorps xmm0, xmm0
ucomiss xmm0, dword [esi + 0x2f30]
jb 0x1009e997
movss xmm0, dword [esi + 0x1c]
movss dword [esi + 0x2f30], xmm0
mov esi, dword [esp + 8]
mov byte [esi + 0x92], 0
lea ecx, [esp + 0x160]
mov edx, esi
push edi
call fcn.100a8a30
add esp, 4
test byte [esp + 0xc], 0x40
je 0x1009e9c8
cmp byte [esi + 0x91], 0
je 0x1009eaa9
cmp byte [esi + 0xa8], 0
mov eax, dword [esp + 0xd0]
jle 0x1009ea18
mov ecx, eax
cmp byte [esp + 0xb0], 0
jne 0x1009ea27
cmp byte [esi + 0xab], 0
movss xmm0, dword [esp + 0x160]
je 0x1009ea0f
movss xmm1, dword [esi + 0x1c]
movaps xmm2, xmm0
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
movaps xmm0, xmm2
movss dword [esi + 0x1c], xmm0
mov cl, 1
jmp 0x1009ea27
cmp byte [esi + 0xa9], 0
mov ecx, eax
jle 0x1009eaf4
cmp byte [esp + 0xe0], 0
mov dword [esp + 0x110], ecx
jne 0x1009ea73
cmp byte [esi + 0xa9], 0
jle 0x1009ea73
cmp byte [esi + 0xab], 0
movss xmm0, dword [esp + 0x164]
je 0x1009ea6c
movss xmm1, dword [esi + 0x20]
movaps xmm2, xmm0
cmpless xmm2, xmm1
andps xmm1, xmm2
andnps xmm2, xmm0
orps xmm2, xmm1
movaps xmm0, xmm2
movss dword [esi + 0x20], xmm0
mov al, 1
cmp byte [esi + 0x91], 0
mov dword [esp + 0xd0], eax
jne 0x1009eafb
test byte [esi + 9], 1
jne 0x1009eafb
mov eax, dword [0x1058eba8]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x2f30]
jb 0x1009eafb
movss xmm0, dword [eax + 0x1c]
movss dword [eax + 0x2f30], xmm0
jmp 0x1009eafb
mov eax, dword [esp + 0xd0]
cmp byte [esp + 0xb0], 0
jne 0x1009eaca
movss xmm0, dword [esp + 0x160]
movss dword [esi + 0x1c], xmm0
mov al, 1
mov dword [esp + 0x110], eax
cmp byte [esp + 0xe0], 0
jne 0x1009eafb
movss xmm0, dword [esp + 0x164]
movss dword [esi + 0x20], xmm0
mov al, 1
mov dword [esp + 0xd0], eax
jmp 0x1009eafb
mov dword [esp + 0x110], eax
lea eax, [esi + 0x1c]
lea ecx, [esp + 0x10]
mov edx, esi
push eax
call fcn.100a8c20
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
cmp byte [esi + 0x91], 0
movd xmm0, ecx
mov ecx, dword [esp + 0x58]
je 0x1009eb8b
test ecx, ecx
jne 0x1009eb8b
movss xmm1, dword [esi + 0x10]
mov eax, dword [esi + 8]
xorps xmm3, xmm3
test al, 1
jne 0x1009eb77
mov ecx, dword [0x1058eba8]
movss xmm2, dword [ecx + 0x194c]
mulss xmm2, dword [esi + 0x250]
mov edx, dword [esi + 0x2ec]
test edx, edx
je 0x1009eb67
mulss xmm2, dword [edx + 0x250]
movss xmm3, dword [ecx + 0x1550]
addss xmm3, xmm3
addss xmm3, xmm2
movss xmm2, dword [esi + 0xc]
unpcklps xmm2, xmm1
punpckldq xmm0, xmm3
addps xmm0, xmm2
subps xmm0, xmm2
jmp 0x1009eb96
movd xmm1, eax
mov eax, dword [esi + 8]
punpckldq xmm0, xmm1
movq qword [esi + 0x14], xmm0
xorps xmm7, xmm7
pxor xmm0, xmm0
movd dword [esp + 0xe0], xmm0
test al, 1
jne 0x1009ebf0
mov ecx, dword [0x1058eba8]
movss xmm0, dword [ecx + 0x194c]
mulss xmm0, dword [esi + 0x250]
mov edx, dword [esi + 0x2ec]
test edx, edx
je 0x1009ebd7
mulss xmm0, dword [edx + 0x250]
movss xmm1, dword [ecx + 0x1550]
addss xmm1, xmm1
addss xmm1, xmm0
movss dword [esp + 0xe0], xmm1
test eax, 0x400
mov ecx, dword [esp + 0xc]
je 0x1009ec42
mov eax, dword [0x1058eba8]
movss xmm0, dword [esi + 0x134]
movss xmm1, dword [eax + 0x194c]
mulss xmm1, dword [esi + 0x250]
mov ecx, dword [esi + 0x2ec]
test ecx, ecx
je 0x1009ec2a
mulss xmm1, dword [ecx + 0x250]
addss xmm0, xmm1
movss xmm7, dword [eax + 0x1550]
addss xmm7, xmm7
addss xmm7, xmm0
mov ecx, dword [esp + 0xc]
cmp byte [esp + 0x120], 0
je 0x1009ec8d
mov dword [esi + 0xac], 0xffffffff
mov eax, ecx
and eax, 0xc000000
cmp eax, 0x4000000
setne al
or al, byte [esp + 0x30]
jne 0x1009ec8d
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x1d2c]
mov ecx, dword [ecx + 0x1d34]
lea eax, [eax + eax*8]
movq xmm0, qword [ecx + eax*4 - 0x10]
mov ecx, dword [esp + 0xc]
movq qword [esi + 0xc], xmm0
mov eax, ecx
and eax, 0x3000000
mov dword [esp + 0x60], eax
cmp dword [esp + 0x58], 0
je 0x1009edce
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + 0x15c]
mov word [esi + 0x9c], ax
mov eax, dword [ecx + 0x15c]
cmp eax, dword [ecx + 0x160]
jne 0x1009ed8a
lea esi, [eax + 1]
test eax, eax
je 0x1009ecdb
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x1009ece0
mov ecx, 8
cmp ecx, esi
cmovg esi, ecx
cmp eax, esi
jge 0x1009ed8a
movss dword [esp + 0xb0], xmm7
lea eax, [esi*4]
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009ed0d
inc dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f34]
add esp, 8
mov ebx, eax
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x164]
test eax, eax
je 0x1009ed6f
mov ecx, dword [edi + 0x15c]
shl ecx, 2
push ecx
push eax
push ebx
call fcn.10368490
add esp, 0xc
mov eax, dword [edi + 0x164]
test eax, eax
je 0x1009ed5b
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x1009ed5b
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov edi, dword [esp + 0x28]
mov dword [edi + 0x164], ebx
mov dword [edi + 0x160], esi
mov eax, dword [edi + 0x15c]
movss xmm7, dword [esp + 0xb0]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 0x164]
mov esi, dword [esp + 8]
mov dword [ecx + eax*4], esi
mov ecx, dword [esp + 0xc]
mov eax, ecx
shr eax, 0x1a
and eax, 1
inc dword [edx + 0x15c]
or al, byte [esp + 0x30]
jne 0x1009edce
cmp dword [esp + 0x60], 0x3000000
je 0x1009edce
mov eax, dword [esp + 0x28]
movq xmm0, qword [eax + 0xd4]
movq qword [esi + 0xc], xmm0
movss xmm0, dword [esi + 0xb8]
ucomiss xmm0, dword [0x1048d2e0]
jne 0x1009ede1
jnp 0x1009edea
cmp byte [esi + 0xb1], 0
je 0x1009ee60
test ecx, 0x10000000
jne 0x1009ee2c
test ecx, 0x4000000
sete al
or al, byte [esp + 0x30]
jne 0x1009ee0b
cmp byte [esp + 0xa0], 0
jg 0x1009ee2c
test ecx, 0x2000000
sete al
or al, byte [esp + 0x30]
jne 0x1009eee4
cmp dword [esp + 0x60], 0x3000000
je 0x1009eee4
push esi
lea eax, [esp + 0x14]
push eax
movss dword [esp + 0xb8], xmm7
call fcn.100a8e50
movss xmm7, dword [esp + 0xb8]
mov ecx, dword [esp + 0x14]
add esp, 8
movsd xmm0, qword [esp + 0x10]
movsd qword [esi + 0xc], xmm0
jmp 0x1009eee4
and byte [esi + 0xb4], 0xf1
mov dword [esi + 0xb8], 0x7f7fffff
movss xmm1, dword [esi + 0xbc]
mov dword [esi + 0xbc], 0x7f7fffff
movsd xmm2, qword [esi + 0xc]
movsd xmm3, qword [esi + 0x14]
movsd xmm4, qword [esi + 0xc0]
mulps xmm4, xmm3
unpcklps xmm0, xmm1
subps xmm0, xmm4
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movlps qword [esi + 0xc], xmm0
subps xmm0, xmm2
movsd xmm1, qword [esi + 0xd4]
addps xmm1, xmm0
movlps qword [esi + 0xd4], xmm1
movsd xmm1, qword [esi + 0xf4]
addps xmm1, xmm0
movlhps xmm0, xmm0
movlps qword [esi + 0xf4], xmm1
movups xmm1, xmmword [esi + 0xe4]
addps xmm1, xmm0
movups xmmword [esi + 0xe4], xmm1
mov eax, dword [0x1058eba8]
mov eax, dword [eax + 0x1d4c]
mov eax, dword [eax]
movsd xmm1, qword [eax + 4]
movsd xmm0, qword [eax + 0xc]
addps xmm0, xmm1
movaps xmm2, xmm1
movlhps xmm2, xmm0
movups xmmword [esp + 0x130], xmm2
movsd xmm2, qword [eax + 0x14]
movsd xmm6, qword [eax + 0x1c]
addps xmm6, xmm2
mov eax, dword [esp + 4]
movsd xmm3, qword [eax + 0x15b8]
movsd xmm4, qword [eax + 0x15c0]
movaps xmm5, xmm4
cmpleps xmm5, xmm3
andps xmm3, xmm5
andnps xmm5, xmm4
orps xmm5, xmm3
subps xmm6, xmm5
addps xmm5, xmm2
movaps xmmword [esp + 0x180], xmm5
movaps xmm2, xmm5
movaps xmmword [esp + 0x1e0], xmm6
movlhps xmm2, xmm6
movups xmmword [esp + 0x25c], xmm2
mov eax, dword [esp + 0x30]
or al, byte [esp + 0x80]
jne 0x1009efbd
cmp byte [esi + 0xa8], 0
jg 0x1009efbd
cmp byte [esi + 0xa9], 0
jg 0x1009efbd
subps xmm0, xmm1
xorps xmm1, xmm1
cmpltps xmm1, xmm0
unpcklps xmm1, xmm1
movmskpd eax, xmm1
test al, 1
je 0x1009efbd
shr al, 1
je 0x1009efbd
lea edx, [esp + 0x25c]
mov ecx, esi
movss dword [esp + 0xb0], xmm7
call fcn.100a9080
movss xmm7, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [esi + 0xc]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movlps qword [esi + 0xc], xmm0
cmp dword [esp + 0x58], 0
jne 0x1009efee
mov eax, ecx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x1009effa
mov esi, dword [esp + 4]
lea eax, [esi + 0x1544]
jmp 0x1009f004
mov esi, dword [esp + 4]
lea eax, [esi + 0x153c]
jmp 0x1009f004
mov esi, dword [esp + 4]
lea eax, [esi + 0x1520]
mov ebx, ecx
and ecx, 0x4000000
mov edx, ecx
shr edx, 0x1a
mov dword [esp + 0x30], edx
shr ebx, 0xc
and ebx, 1
mov edx, dword [esp + 0x120]
xor dl, 1
or dl, bl
mov dh, dl
xor dh, 1
xor ebx, ebx
cmp dword [esp + 0x60], 0
sete bl
test ecx, ecx
movzx ecx, dh
cmovne ebx, ecx
test dl, dl
movss xmm0, dword [esp + 0xe0]
addss xmm0, xmm7
movss dword [esp + 0xe0], xmm0
movss xmm1, dword [eax]
mov edi, dword [esp + 8]
movss dword [edi + 0x44], xmm1
cmovne ebx, ecx
mov dword [esp + 0x15c], ebx
xorps xmm0, xmm0
movaps xmmword [esp + 0x210], xmm0
cmp byte [esi + 0xb4], 1
mov eax, 2
sbb eax, 0
mov dword [esp + 0xb0], eax
addss xmm1, dword [0x10398490]
movss dword [esp + 0x1a0], xmm1
movss xmm0, dword [esi + 0x1948]
movaps xmmword [esp + 0x1d0], xmm0
cmp byte [edi + 0x91], 0
je 0x1009f0d6
lea eax, [edi + 0x98]
mov dword [esp + 0x5c], eax
mov byte [edi + 0x98], 0xff
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
jmp 0x1009f2a5
mov ebx, esi
test byte [edi + 8], 0x42
mov esi, edi
jne 0x1009f0f6
cmp byte [esi + 0xa8], 0
jg 0x1009f0f6
cmp byte [esi + 0xa9], 0
jle 0x100a21d4
lea edi, [esi + 0x98]
mov byte [esi + 0x98], 0xff
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x110]
xorps xmm0, xmm0
cmp byte [esp + 0xc0], 0
jne 0x1009f132
movsd xmm1, qword [esi + 0x24]
movsd xmm0, qword [esi + 0x3c]
addps xmm0, xmm0
addps xmm0, xmm1
test dl, dl
je 0x1009f172
movss xmm2, dword [esi + 0x1c]
test cl, cl
jne 0x1009f18e
movss xmm1, dword [esi + 0x1d0]
subss xmm1, dword [esi + 0x1c8]
addss xmm1, dword [esi + 0x88]
test eax, 0x4000
je 0x1009f1a3
mov byte [esi + 0x8d], 1
test ax, ax
js 0x1009f1db
lea ecx, [esi + 0x8d]
jmp 0x1009f1cf
movss xmm2, dword [esi + 0x1cc]
subss xmm2, dword [esi + 0x1c4]
addss xmm2, dword [esi + 0x84]
test cl, cl
je 0x1009f13f
movss xmm1, dword [esi + 0x20]
subss xmm1, dword [esp + 0xe0]
test eax, 0x4000
jne 0x1009f15e
movaps xmm3, xmm0
shufps xmm3, xmm0, 0x55
ucomiss xmm3, xmm1
mov edx, eax
seta cl
test dl, 8
sete al
and al, cl
lea ecx, [esi + 0x8d]
mov byte [esi + 0x8d], al
test dx, dx
js 0x1009f1e9
test al, al
je 0x1009f1f6
movss xmm3, dword [ebx + 0x1584]
mov al, 1
jmp 0x1009f1fb
mov byte [esi + 0x8c], 1
mov al, 1
jmp 0x1009f26e
mov byte [esi + 0x8c], 1
test al, al
je 0x1009f243
jmp 0x1009f26e
xorps xmm3, xmm3
xor eax, eax
subss xmm2, xmm3
ucomiss xmm0, xmm2
jbe 0x1009f22f
mov edx, dword [esp + 0xc]
and edx, 8
jne 0x1009f22f
mov ebx, dword [esp + 0xc]
and ebx, 0x800
mov edx, ebx
shr edx, 0xb
mov byte [esi + 0x8c], dl
xorps xmm2, xmm2
test ebx, ebx
jne 0x1009f23b
mov ebx, dword [esp + 4]
jmp 0x1009f276
mov byte [esi + 0x8c], 0
xorps xmm2, xmm2
jmp 0x1009f276
test al, al
mov ebx, dword [esp + 4]
jne 0x1009f266
lea edx, [esi + 0x8c]
shufps xmm0, xmm0, 0x55
ucomiss xmm0, xmm1
seta bl
test byte [esp + 0xc], 8
sete al
and al, bl
mov byte [ecx], al
movzx edx, byte [edx]
mov ebx, dword [esp + 4]
test dl, dl
je 0x100a21cc
movss xmm2, dword [ebx + 0x1584]
test al, al
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], edi
je 0x1009f290
movss xmm0, dword [ebx + 0x1584]
jmp 0x1009f293
xorps xmm0, xmm0
movss dword [esi + 0x84], xmm0
movss dword [esi + 0x88], xmm2
mov edi, esi
test eax, eax
sete al
or al, cl
mov byte [esp + 0x30], al
mov esi, dword [esp + 0x28]
lea eax, [esi + 0x204]
cmp dword [esp + 0x60], 0x3000000
lea ecx, [esp + 0x130]
cmove eax, ecx
lea edx, [esi + 0x208]
lea ecx, [esp + 0x134]
cmove edx, ecx
lea ecx, [esi + 0x20c]
lea ebx, [esp + 0x138]
cmove ecx, ebx
lea esi, [esi + 0x210]
lea ebx, [esp + 0x13c]
cmove esi, ebx
cmp byte [esp + 0x30], 0
lea ebx, [esp + 0x134]
cmovne edx, ebx
lea ebx, [esp + 0x130]
cmovne eax, ebx
movss xmm1, dword [eax]
lea eax, [esp + 0x13c]
cmovne esi, eax
movss xmm5, dword [edx]
lea eax, [esp + 0x138]
cmovne ecx, eax
movss xmm6, dword [ecx]
movss xmm7, dword [esi]
movsd xmm2, qword [edi + 0xc]
movsd xmm3, qword [edi + 0x14]
movaps xmm0, xmm2
movaps xmmword [esp + 0xc0], xmm3
addps xmm0, xmm3
xorps xmm3, xmm3
test byte [edi + 8], 1
mov esi, edi
mov ebx, dword [esp + 4]
jne 0x1009f397
mov eax, dword [0x1058eba8]
movss xmm4, dword [eax + 0x194c]
mulss xmm4, dword [esi + 0x250]
mov ecx, dword [esi + 0x2ec]
test ecx, ecx
je 0x1009f387
mulss xmm4, dword [ecx + 0x250]
movss xmm3, dword [eax + 0x1550]
addss xmm3, xmm3
addss xmm3, xmm4
mov edi, dword [esp + 0xc]
mov ecx, edi
and ecx, 0x401
lea eax, [ebx + 0x1558]
lea edx, [esi + 0x48]
cmp ecx, 1
cmove eax, edx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
movss xmm4, dword [esi + 0x1c]
mov dword [esp + 0x104], edx
mov dword [esp + 0x100], ecx
mov ecx, edi
unpcklps xmm4, xmm3
addps xmm4, xmm2
movlps qword [esp + 0x108], xmm4
movaps xmmword [esp + 0xd0], xmm1
movaps xmm4, xmm1
movaps xmmword [esp + 0x80], xmm5
unpcklps xmm4, xmm5
movaps xmm3, xmm4
cmpleps xmm3, xmm2
movaps xmm5, xmm2
andps xmm5, xmm3
andnps xmm3, xmm4
orps xmm3, xmm5
movaps xmmword [esp + 0x110], xmm6
movaps xmm5, xmm6
movaps xmmword [esp + 0xa0], xmm7
unpcklps xmm5, xmm7
movaps xmm6, xmm0
minps xmm6, xmm5
movlhps xmm3, xmm6
movups xmmword [esi + 0x1b4], xmm3
movss xmm3, dword [esi + 0xc]
movss xmm6, dword [esi + 0x3c]
movss dword [esi + 0x1c4], xmm3
shufps xmm2, xmm2, 0x55
addss xmm2, dword [esp + 0xe0]
movss dword [esi + 0x1c8], xmm2
movaps xmm7, xmmword [esp + 0xc0]
addss xmm7, xmm3
movsd xmm1, qword [esi + 0x84]
movss xmm0, xmm7
subps xmm0, xmm1
movlps qword [esi + 0x1cc], xmm0
movss xmm1, dword [esi + 0x48]
mulss xmm6, dword [0x10398564]
cvttps2dq xmm6, xmm6
cvtdq2ps xmm7, xmm6
movaps xmm6, xmm1
cmpless xmm6, xmm7
andps xmm7, xmm6
andnps xmm6, xmm1
movss xmm1, dword [eax]
unpcklps xmm3, xmm2
movaps xmm2, xmm3
movlhps xmm2, xmm0
addps xmm2, xmmword [0x1048d580]
orps xmm6, xmm7
unpcklps xmm6, xmm1
movss xmm1, dword [esi + 0x48]
movaps xmm7, xmm2
addps xmm7, xmm6
shufps xmm6, xmm1, 0x24
shufps xmm6, xmm6, 0xc4
subps xmm2, xmm6
movsd xmm2, xmm7
movaps xmm6, xmmword [esp + 0xc0]
cvttps2dq xmm1, xmm2
cvtdq2ps xmm1, xmm1
movlhps xmm4, xmm4
movlhps xmm5, xmm5
minps xmm5, xmm1
cmpltps xmm1, xmm4
andps xmm4, xmm1
andnps xmm1, xmm5
orps xmm1, xmm4
movups xmmword [esi + 0x1d4], xmm1
test cl, 0x40
jne 0x1009f515
xorps xmm1, xmm1
ucomiss xmm6, xmm1
jbe 0x1009f515
mov eax, ecx
and eax, 0x2000000
jne 0x1009f515
mulss xmm6, dword [0x1048d590]
jmp 0x1009f525
movss xmm6, dword [ebx + 0x1948]
mulss xmm6, dword [0x1048d594]
cvttps2dq xmm1, xmm6
cvtdq2ps xmm1, xmm1
movss dword [esi + 0x234], xmm1
subps xmm0, xmm3
movsd xmm1, qword [esi + 0x24]
movsd xmm2, qword [esi + 0x3c]
addps xmm2, xmm2
addps xmm2, xmm1
subps xmm2, xmm0
xorps xmm0, xmm0
movaps xmm1, xmm2
cmpnleps xmm1, xmm0
andps xmm1, xmm2
movlps qword [esi + 0x64], xmm1
lea ecx, [esp + 0x10]
mov edx, esi
call fcn.100a9100
movsd xmm0, qword [esp + 0x10]
movsd qword [esi + 0x5c], xmm0
mov dword [esi + 0x6c], 0x7f7fffff
mov dword [esi + 0x70], 0x7f7fffff
mov ecx, dword [esi + 0x258]
mov eax, dword [ebx + 0x1944]
mov eax, dword [eax + 0x30]
push dword [eax + 4]
call fcn.100ade20
mov eax, dword [0x1058eba8]
mov ecx, dword [eax + 0x1bbc]
mov byte [ecx + 0x90], 1
mov esi, dword [eax + 0x1bbc]
mov ecx, dword [esi + 0x258]
sub esp, 0x14
movaps xmm0, xmmword [esp + 0xb4]
movss dword [esp + 0xc], xmm0
movaps xmm0, xmmword [esp + 0x124]
movss dword [esp + 8], xmm0
movaps xmm0, xmmword [esp + 0x94]
movss dword [esp + 4], xmm0
movaps xmm0, xmmword [esp + 0xe4]
movss dword [esp], xmm0
mov dword [esp + 0x10], 0
call fcn.100adbc0
mov eax, dword [esi + 0x258]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
shl ecx, 4
movdqu xmm0, xmmword [ecx + eax - 0x10]
movdqu xmmword [esi + 0x204], xmm0
xor eax, eax
test dword [esp + 0xc], 0x8000000
je 0x1009f67d
mov eax, dword [0x1058eba8]
mov ecx, dword [eax + 0x1d20]
test ecx, ecx
jle 0x1009f997
mov edx, dword [eax + 0x1d28]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*8]
lea ecx, [edx + ecx*4]
add ecx, 0xffffffe0
mov esi, dword [esp + 8]
jmp 0x1009f659
dec eax
add ecx, 0xffffffdc
cmp eax, 1
jbe 0x1009f66d
mov edx, dword [ecx]
test edx, edx
je 0x1009f650
test byte [edx + 0xb], 8
je 0x1009f650
cmp esi, edx
je 0x1009f673
xor eax, eax
jmp 0x1009f67d
xor edx, edx
cmp esi, edx
jne 0x1009f669
cmp byte [esi + 0xb1], 0
setle al
mov ecx, dword [ebx + 0x1e5c]
test ecx, ecx
je 0x1009f696
mov edx, dword [esp + 8]
cmp edx, dword [ecx + 0x2f0]
sete bl
jmp 0x1009f69c
xor ebx, ebx
mov edx, dword [esp + 8]
mov ecx, eax
or cl, bl
cmp cl, 1
jne 0x1009f7a8
movzx eax, al
shl eax, 4
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1e8c]
mov ecx, dword [0x1058eba8]
movss xmm2, dword [eax + ecx + 0x1914]
movss xmm1, dword [eax + ecx + 0x1918]
mulss xmm0, dword [ecx + 0x1510]
mulss xmm0, dword [eax + ecx + 0x1920]
movss xmm3, dword [0x10398490]
movaps xmm5, xmm3
minss xmm5, xmm2
xorps xmm4, xmm4
cmpltss xmm2, xmm4
andnps xmm2, xmm5
movss xmm5, dword [0x1039848c]
mulss xmm2, xmm5
movss xmm6, dword [0x10398564]
addss xmm2, xmm6
movss xmm7, dword [eax + ecx + 0x191c]
cvttss2si ecx, xmm2
minss xmm3, xmm1
cmpltss xmm1, xmm4
andnps xmm1, xmm3
mulss xmm1, xmm5
addss xmm1, xmm6
cvttss2si eax, xmm1
shl eax, 8
or eax, ecx
unpcklps xmm7, xmm0
xorps xmm0, xmm0
movaps xmm1, xmmword [0x103984c0]
minps xmm1, xmm7
cmpnltps xmm7, xmm0
andps xmm7, xmm1
mulps xmm7, xmmword [0x103984e0]
addps xmm7, xmmword [0x1048d350]
cvttps2dq xmm0, xmm7
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd ecx, xmm0
or ecx, eax
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
or eax, ecx
mov ecx, dword [edx + 0x258]
push 0
push 0
push eax
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0x140]
push eax
call fcn.100b04b0
test bl, bl
mov esi, dword [esp + 4]
je 0x1009f92d
mov eax, dword [esp + 8]
cmp eax, dword [esi + 0x1e5c]
jne 0x1009f92d
mov edi, dword [esp + 8]
movsd xmm1, qword [edi + 0xc]
movss xmm2, dword [esi + 0x1948]
shufps xmm2, xmm2, 0
movaps xmm0, xmm1
subps xmm0, xmm2
movlps qword [esp + 0x10], xmm0
movsd xmm3, qword [edi + 0x14]
addps xmm3, xmm1
addps xmm3, xmm2
movlps qword [esp + 0x18], xmm3
movups xmm1, xmmword [esp + 0x130]
movlhps xmm0, xmm3
movaps xmm2, xmm1
cmpleps xmm2, xmm0
cmpleps xmm0, xmm1
shufps xmm0, xmm2, 0xe4
pslld xmm0, 0x1f
movmskps eax, xmm0
cmp al, 0xf
je 0x1009f92d
movss xmm0, dword [esi + 0x1e68]
mulss xmm0, dword [0x1048d598]
mov eax, dword [0x1058eba8]
movss xmm2, dword [eax + 0x1904]
movss xmm1, dword [eax + 0x1908]
mulss xmm0, dword [eax + 0x1510]
mulss xmm0, dword [eax + 0x1910]
movss xmm3, dword [0x10398490]
movaps xmm4, xmm3
minss xmm4, xmm2
xorps xmm5, xmm5
cmpltss xmm2, xmm5
andnps xmm2, xmm4
movss xmm4, dword [0x1039848c]
mulss xmm2, xmm4
movss xmm6, dword [0x10398564]
addss xmm2, xmm6
cvttss2si ecx, xmm2
minss xmm3, xmm1
cmpltss xmm1, xmm5
andnps xmm1, xmm3
mulss xmm1, xmm4
addss xmm1, xmm6
cvttss2si edx, xmm1
movss xmm1, dword [eax + 0x190c]
lea eax, [esp + 0x18]
shl edx, 8
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x103984c0]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x103984e0]
addps xmm1, xmmword [0x1048d350]
or edx, ecx
cvttps2dq xmm0, xmm1
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd ecx, xmm0
or ecx, edx
pshufd xmm0, xmm1, 0x55
movd edx, xmm0
or edx, ecx
mov ecx, dword [edi + 0x258]
movd xmm0, dword [esi + 0x1520]
sub esp, 0x14
movd dword [esp + 0xc], xmm0
mov dword [esp + 4], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 0x10], 0
call fcn.100b04b0
cmp dword [esp + 0x60], 0x3000000
sete al
or byte [esp + 0x30], al
jne 0x1009f957
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x258]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
lea ecx, [ecx + ecx*4]
cmp dword [eax + ecx*8 - 0xc], 0
je 0x1009f9aa
mov dword [esp + 0x140], 0
mov eax, dword [esi + 0x1e58]
test eax, eax
jne 0x1009f972
mov eax, dword [esi + 0x1d50]
mov cl, 1
test byte [esp + 0x15c], 1
mov esi, dword [esp + 8]
jne 0x1009f9d1
test eax, eax
je 0x1009f9cf
mov ecx, dword [esi + 0x2f4]
cmp ecx, dword [eax + 0x2f4]
sete cl
jmp 0x1009f9d1
xor edx, edx
mov esi, dword [esp + 8]
cmp esi, edx
jne 0x1009f669
jmp 0x1009f673
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x258]
cmp dword [eax + 0x18], 0
jle 0x1009f957
mov ecx, dword [esp + 8]
mov dword [ecx + 0x258], eax
mov al, 1
mov dword [esp + 0x140], eax
jmp 0x1009f962
xor ecx, ecx
mov ebx, dword [0x1058eba8]
mov edx, dword [esi + 8]
mov byte [esi + 0x93], 0
movss xmm0, dword [esi + 0x44]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esi + 0x48]
cmp byte [esi + 0x91], 0
je 0x1009fb3d
movss xmm1, dword [ebx + 0x1558]
movss dword [esp + 0x30], xmm1
movss dword [ebx + 0x1558], xmm0
mov eax, 0xc
test cl, cl
je 0x1009fa2a
cmp byte [ebx + 0x1da2], 1
sbb eax, 0
shl eax, 4
movss xmm2, dword [ebx + eax + 0x15e4]
movss xmm0, dword [ebx + eax + 0x15f0]
mulss xmm0, dword [ebx + 0x1510]
movss xmm1, dword [0x10398490]
movaps xmm3, xmm1
minss xmm3, xmm2
xorps xmm4, xmm4
cmpltss xmm2, xmm4
andnps xmm2, xmm3
movss xmm3, dword [0x1039848c]
mulss xmm2, xmm3
movss xmm5, dword [0x10398564]
addss xmm2, xmm5
cvttss2si edx, xmm2
movss xmm2, dword [ebx + eax + 0x15e8]
minss xmm1, xmm2
cmpltss xmm2, xmm4
andnps xmm2, xmm1
mulss xmm2, xmm3
addss xmm2, xmm5
cvttss2si ecx, xmm2
shl ecx, 8
or ecx, edx
movss xmm1, dword [ebx + eax + 0x15ec]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x103984c0]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x103984e0]
addps xmm1, xmmword [0x1048d350]
cvttps2dq xmm0, xmm1
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd eax, xmm0
or eax, ecx
pshufd xmm0, xmm1, 0x55
movd ecx, xmm0
or ecx, eax
movups xmm0, xmmword [esp + 0x100]
sub esp, 0x1c
movss xmm1, dword [esp + 0xdc]
movss dword [esp + 0x18], xmm1
movups xmmword [esp], xmm0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 1
call fcn.10095000
add esp, 0x1c
movss xmm0, dword [esp + 0x30]
movss dword [ebx + 0x1558], xmm0
mov ecx, dword [esp + 0xc]
jmp 0x100a0dbb
movaps xmmword [esp + 0x60], xmm0
test dl, dl
mov dword [esp + 0x30], edx
js 0x1009fd1d
mov dword [esp + 0xd0], ecx
xor ecx, ecx
test edx, 0x1000000
sete cl
xor ecx, 3
test edx, 0x6000000
mov eax, 4
cmove eax, ecx
shl eax, 4
movss xmm4, dword [ebx + eax + 0x15e4]
movss xmm1, dword [0x10398490]
movaps xmm2, xmm1
minss xmm2, xmm4
xorps xmm0, xmm0
cmpltss xmm4, xmm0
andnps xmm4, xmm2
movss xmm2, dword [0x1039848c]
mulss xmm4, xmm2
movss xmm3, dword [0x10398564]
addss xmm4, xmm3
cvttss2si ecx, xmm4
movsd xmm4, qword [ebx + eax + 0x15e8]
xorps xmm5, xmm5
movaps xmm6, xmmword [0x103984c0]
minps xmm6, xmm4
cmpnltps xmm4, xmm5
andps xmm4, xmm6
mulps xmm4, xmmword [0x103984e0]
addps xmm4, xmmword [0x1048d350]
cvttps2dq xmm4, xmm4
movdqa xmm5, xmm4
pslld xmm5, 0x10
pslld xmm4, 8
movd edx, xmm4
or edx, ecx
pshufd xmm4, xmm5, 0x55
movd ecx, xmm4
or ecx, edx
test byte [ebx + 0x1c84], 0x40
jne 0x1009fc37
movss xmm4, dword [ebx + eax + 0x15f0]
mov edi, ebx
mulss xmm4, dword [ebx + 0x1510]
minss xmm1, xmm4
cmpltss xmm4, xmm0
andnps xmm4, xmm1
mulss xmm4, xmm2
addss xmm4, xmm3
cvttss2si eax, xmm4
jmp 0x1009fc67
mov edi, ebx
movss xmm2, dword [ebx + 0x1cd8]
and ecx, 0xffffff
minss xmm1, xmm2
cmpltss xmm2, xmm0
andnps xmm2, xmm1
mulss xmm2, dword [0x1039848c]
addss xmm2, dword [0x10398564]
cvttss2si eax, xmm2
shl eax, 0x18
or eax, ecx
mov ecx, dword [esi + 0x258]
xor esi, esi
mov ebx, dword [esp + 0x30]
test bl, 1
mov edx, 0xc0
cmovne edx, esi
mov esi, dword [esp + 8]
movsd xmm1, qword [esi + 0xc]
movsd xmm2, qword [esi + 0x14]
addps xmm2, xmm1
movlps qword [esp + 0x10], xmm2
test bl, 1
mov ebx, edi
jne 0x1009fcd6
movss xmm2, dword [ebx + 0x194c]
mulss xmm2, dword [esi + 0x250]
mov esi, dword [esi + 0x2ec]
test esi, esi
je 0x1009fcc2
mulss xmm2, dword [esi + 0x250]
movss xmm0, dword [ebx + 0x1550]
addss xmm0, xmm0
addss xmm0, xmm2
mov esi, dword [esp + 8]
xorps xmm2, xmm2
unpcklps xmm2, xmm0
addps xmm1, xmm2
movlps qword [esp + 0x40], xmm1
sub esp, 0x14
mov dword [esp + 0x10], edx
movss xmm0, dword [esp + 0xd4]
movss dword [esp + 0xc], xmm0
mov dword [esp + 8], eax
lea eax, [esp + 0x24]
mov dword [esp + 4], eax
lea eax, [esp + 0x54]
mov dword [esp], eax
call fcn.100b04b0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xd0]
lea edi, [esi + 0xc]
movss xmm0, dword [ebx + 0x15d8]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x1009ff2a
mov eax, edx
and eax, 0x5000000
cmp eax, 0x1000000
je 0x1009ff2a
movss xmm0, dword [ebx + 0x1940]
ucomiss xmm0, xmm1
jbe 0x1009ff2a
mov esi, dword [0x1058eba8]
movss xmm0, dword [esi + 0x15d8]
movss dword [esp + 0x80], xmm0
movss xmm4, dword [esi + 0x1934]
movss xmm0, dword [esi + 0x1940]
mulss xmm0, dword [esi + 0x1510]
movss xmm2, dword [esi + 0x1938]
movss xmm3, dword [0x10398490]
movaps xmm5, xmm3
minss xmm5, xmm4
cmpltss xmm4, xmm1
andnps xmm4, xmm5
movss xmm5, dword [0x1039848c]
mulss xmm4, xmm5
movss xmm6, dword [0x10398564]
addss xmm4, xmm6
mov dword [esp + 0xd0], ecx
cvttss2si ecx, xmm4
minss xmm3, xmm2
cmpltss xmm2, xmm1
andnps xmm2, xmm3
mulss xmm2, xmm5
addss xmm2, xmm6
cvttss2si eax, xmm2
shl eax, 8
or eax, ecx
movss xmm1, dword [esi + 0x193c]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x103984c0]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x103984e0]
addps xmm1, xmmword [0x1048d350]
cvttps2dq xmm0, xmm1
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd ecx, xmm0
or ecx, eax
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
or eax, ecx
mov dword [esp + 0x110], eax
movss xmm0, dword [esi + 0x15e0]
cvtss2sd xmm0, xmm0
movss xmm1, dword [esi + 0x15dc]
movaps xmmword [esp + 0xa0], xmm1
sub esp, 8
movsd qword [esp], xmm0
call fcn.10380450
add esp, 8
fstp qword [esp + 0x228]
movss xmm0, dword [esi + 0x15e0]
mov esi, dword [esp + 8]
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
call fcn.1037cba0
add esp, 8
fstp qword [esp + 0x220]
movsd xmm0, qword [esp + 0x220]
movhpd xmm0, qword [esp + 0x228]
cvtpd2ps xmm0, xmm0
movaps xmm1, xmmword [esp + 0xa0]
unpcklps xmm1, xmm1
mulps xmm1, xmm0
movlps qword [esp + 0x10], xmm1
mov ecx, dword [esi + 0x258]
movss xmm0, dword [esi + 0x44]
movsd xmm1, qword [esi + 0xc]
movsd xmm2, qword [esi + 0x14]
addps xmm2, xmm1
movlps qword [esp + 0x40], xmm2
sub esp, 0x1c
movss dword [esp + 0x18], xmm0
lea eax, [esp + 0x2c]
mov dword [esp + 0x10], eax
movss xmm0, dword [esp + 0x9c]
movss dword [esp + 0xc], xmm0
mov eax, dword [esp + 0x12c]
mov dword [esp + 8], eax
lea eax, [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x14], 0x200
call fcn.100b1c50
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x170], edi
test dl, 1
jne 0x100a0053
movzx eax, cl
shl eax, 4
mov ecx, dword [0x1058eba8]
movss xmm6, dword [eax + ecx + 0x1684]
movss xmm1, dword [eax + ecx + 0x1688]
movss xmm0, dword [eax + ecx + 0x1690]
movss xmm2, dword [0x10398490]
movaps xmm4, xmm2
minss xmm4, xmm6
xorps xmm3, xmm3
cmpltss xmm6, xmm3
andnps xmm6, xmm4
movss xmm4, dword [0x1039848c]
mulss xmm6, xmm4
movss xmm5, dword [0x10398564]
addss xmm6, xmm5
cvttss2si edx, xmm6
movss xmm6, dword [eax + ecx + 0x168c]
lea eax, [esp + 0x108]
mulss xmm0, dword [ecx + 0x1510]
minss xmm2, xmm1
cmpltss xmm1, xmm3
andnps xmm1, xmm2
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si ecx, xmm1
shl ecx, 8
or ecx, edx
unpcklps xmm6, xmm0
xorps xmm0, xmm0
movaps xmm1, xmmword [0x103984c0]
minps xmm1, xmm6
cmpnltps xmm6, xmm0
andps xmm6, xmm1
mulps xmm6, xmmword [0x103984e0]
addps xmm6, xmmword [0x1048d350]
cvttps2dq xmm0, xmm6
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd edx, xmm0
or edx, ecx
pshufd xmm0, xmm1, 0x55
movd esi, xmm0
or esi, edx
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x258]
sub esp, 0x14
movss xmm0, dword [esp + 0xd4]
movss dword [esp + 0xc], xmm0
mov dword [esp + 4], eax
lea eax, [esp + 0x114]
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 0x10], 0x30
call fcn.100b04b0
mov edx, dword [esp + 0x30]
test edx, 0x400
mov edi, dword [esp + 8]
je 0x100a0404
mov ecx, dword [edi + 8]
xorps xmm1, xmm1
mov eax, dword [0x1058eba8]
xorps xmm2, xmm2
test cl, 1
jne 0x100a00ac
movss xmm0, dword [eax + 0x194c]
mulss xmm0, dword [edi + 0x250]
mov edx, dword [edi + 0x2ec]
test edx, edx
je 0x100a0098
mulss xmm0, dword [edx + 0x250]
movss xmm2, dword [eax + 0x1550]
addss xmm2, xmm2
addss xmm2, xmm0
mov edx, dword [esp + 0x30]
movss xmm3, dword [edi + 0x10]
test ecx, 0x400
je 0x100a00f7
movss xmm0, dword [edi + 0x134]
movss xmm1, dword [eax + 0x194c]
mulss xmm1, dword [edi + 0x250]
mov ecx, dword [edi + 0x2ec]
test ecx, ecx
je 0x100a00e3
mulss xmm1, dword [ecx + 0x250]
addss xmm0, xmm1
movss xmm1, dword [eax + 0x1550]
addss xmm1, xmm1
addss xmm1, xmm0
mov dword [esp + 0x80], ebx
addss xmm2, xmm3
movss xmm5, dword [edi + 0xc]
movaps xmm0, xmm3
cmpless xmm0, xmm2
movaps xmm4, xmm0
andps xmm4, xmm2
andnps xmm0, xmm3
orps xmm0, xmm4
movaps xmm4, xmm5
unpcklps xmm4, xmm2
movss xmm6, dword [edi + 0x1c]
unpcklps xmm6, xmm1
addps xmm6, xmm4
movsd xmm1, qword [edi + 0x14]
movaps xmmword [esp + 0xa0], xmm5
movaps xmm2, xmm5
unpcklps xmm2, xmm3
addps xmm2, xmm1
minps xmm6, xmm2
movaps xmm1, xmm6
shufps xmm1, xmm6, 0x55
movaps xmmword [esp + 0xd0], xmm1
mov ecx, dword [edi + 0x258]
xorps xmm7, xmm7
xorps xmm1, xmm1
test dl, 1
je 0x100a016e
movss xmm1, dword [esp + 0xc0]
movss dword [esp + 0x110], xmm1
movss xmm4, dword [eax + 0x16b4]
movss xmm2, dword [eax + 0x16c0]
mulss xmm2, dword [eax + 0x1510]
movss xmm3, dword [eax + 0x16b8]
movss xmm1, dword [0x10398490]
movaps xmm5, xmm1
minss xmm5, xmm4
cmpltss xmm4, xmm7
andnps xmm4, xmm5
movss xmm5, dword [0x1039848c]
mulss xmm4, xmm5
movss xmm7, dword [0x10398564]
addss xmm4, xmm7
cvttss2si edx, xmm4
minss xmm1, xmm3
cmpltss xmm3, dword [0x1048d340]
andnps xmm3, xmm1
mulss xmm3, xmm5
addss xmm3, xmm7
cvttss2si esi, xmm3
movss xmm3, dword [eax + 0x16bc]
unpcklps xmm3, xmm2
xorps xmm2, xmm2
movaps xmm4, xmmword [0x103984c0]
minps xmm4, xmm3
cmpnltps xmm3, xmm2
andps xmm3, xmm4
mulps xmm3, xmmword [0x103984e0]
addps xmm3, xmmword [0x1048d350]
cvttps2dq xmm2, xmm3
movdqa xmm3, xmm2
pslld xmm3, 0x18
pslld xmm2, 0x10
movd ebx, xmm2
pshufd xmm2, xmm3, 0x55
movd eax, xmm2
mov edi, dword [esp + 8]
movss xmm2, dword [edi + 0xc]
movaps xmmword [esp + 0x180], xmm6
movaps xmm3, xmm6
movaps xmm4, xmmword [esp + 0x60]
subss xmm3, xmm4
movss dword [esp + 0x10], xmm3
movaps xmm3, xmm4
unpcklps xmm3, xmm0
addps xmm3, xmm2
movlps qword [esp + 0x40], xmm3
shl esi, 8
or esi, edx
or ebx, esi
or eax, ebx
movaps xmm0, xmmword [esp + 0xd0]
movss dword [esp + 0x14], xmm0
sub esp, 0x14
movss xmm0, dword [esp + 0x124]
movss dword [esp + 0xc], xmm0
lea edx, [esp + 0x24]
mov dword [esp + 4], edx
lea esi, [esp + 0x54]
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0x30
call fcn.100b04b0
movaps xmm4, xmmword [esp + 0xd0]
mov eax, dword [esp + 0x80]
movss xmm0, dword [eax + 0x1558]
ucomiss xmm0, dword [0x1048d340]
mov edx, dword [esp + 0x30]
jbe 0x100a0404
movss xmm1, dword [edi + 0x10]
addss xmm1, dword [edi + 0x18]
ucomiss xmm1, xmm4
jbe 0x100a0404
mov ecx, dword [0x1058eba8]
movss xmm1, dword [ecx + 0x1634]
movss xmm5, dword [0x10398490]
movaps xmm2, xmm5
minss xmm2, xmm1
xorps xmm3, xmm3
cmpltss xmm1, xmm3
andnps xmm1, xmm2
movss xmm2, dword [0x1039848c]
mulss xmm1, xmm2
movss xmm6, dword [0x10398564]
addss xmm1, xmm6
cvttss2si eax, xmm1
mov dword [esp + 0x80], eax
movss xmm1, dword [ecx + 0x1638]
minss xmm5, xmm1
cmpltss xmm1, xmm3
andnps xmm1, xmm5
mulss xmm1, xmm2
addss xmm1, xmm6
movss xmm2, dword [ecx + 0x1640]
mulss xmm2, dword [ecx + 0x1510]
cvttss2si edx, xmm1
movss xmm1, dword [ecx + 0x163c]
unpcklps xmm1, xmm2
xorps xmm2, xmm2
movaps xmm3, xmmword [0x103984c0]
minps xmm3, xmm1
cmpnltps xmm1, xmm2
andps xmm1, xmm3
mulps xmm1, xmmword [0x103984e0]
addps xmm1, xmmword [0x1048d350]
cvttps2dq xmm1, xmm1
movdqa xmm2, xmm1
pslld xmm1, 0x10
movd eax, xmm1
pslld xmm2, 0x18
pshufd xmm1, xmm2, 0x55
movd ebx, xmm1
mov ecx, dword [edi + 0x258]
movaps xmm1, xmmword [esp + 0x180]
movlps qword [esp + 0x10], xmm1
movaps xmm1, xmmword [esp + 0xa0]
movss dword [esp + 0x40], xmm1
movss dword [esp + 0x44], xmm4
shl edx, 8
or edx, dword [esp + 0x80]
or eax, edx
or ebx, eax
sub esp, 0x10
movss dword [esp + 0xc], xmm0
lea eax, [esp + 0x20]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], ebx
call fcn.100b0250
mov edx, dword [esp + 0x30]
cmp byte [edi + 0x8c], 0
je 0x100a041b
push 0
call fcn.100cfe30
mov edx, dword [esp + 0x34]
add esp, 4
cmp byte [edi + 0x8d], 0
je 0x100a0432
push 1
call fcn.100cfe30
mov edx, dword [esp + 0x34]
add esp, 4
test dl, 2
mov ebx, dword [esp + 8]
jne 0x100a07c3
movss xmm0, dword [0x1048d4d0]
movaps xmm3, xmmword [esp + 0x1d0]
mulss xmm0, xmm3
addss xmm0, dword [esp + 0x1a0]
mulss xmm3, dword [0x1048d4d4]
movaps xmm1, xmm0
cmpless xmm1, xmm3
movaps xmm2, xmm1
andnps xmm2, xmm0
andps xmm1, xmm3
orps xmm1, xmm2
cvttps2dq xmm0, xmm1
cvtdq2ps xmm1, xmm0
movss xmm2, dword [esp + 0xc0]
movaps xmm0, xmmword [esp + 0x60]
addss xmm2, xmm0
movaps xmm3, xmm0
unpcklps xmm3, xmm1
movaps xmmword [esp + 0x110], xmm3
unpcklps xmm1, xmm0
movaps xmmword [esp + 0xd0], xmm1
shufps xmm2, xmm2, 0
movaps xmmword [esp + 0x80], xmm2
xor eax, eax
mov esi, 0x1048d020
jmp 0x100a058d
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov eax, dword [esp + 0x1d0]
mov dword [edi + 0x5c], eax
mov dword [edi + 0x58], ebx
mov eax, dword [edi + 0x54]
movaps xmm1, xmmword [esp + 0xa0]
movaps xmm2, xmmword [esp + 0x1a0]
movdqa xmm3, xmmword [esp + 0x60]
mulps xmm3, xmm2
addps xmm3, xmm1
mov ecx, dword [edi + 0x5c]
movlps qword [ecx + eax*8], xmm3
inc dword [edi + 0x54]
mov ebx, dword [esp + 8]
mov ecx, dword [ebx + 0x258]
mov eax, dword [esi - 4]
mov edx, dword [esi]
mulps xmm2, xmmword [esp + 0x80]
addps xmm2, xmm1
movlps qword [esp + 0x10], xmm2
sub esp, 0x10
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
movss xmm0, dword [esp + 0xd0]
movss dword [esp + 4], xmm0
lea eax, [esp + 0x20]
mov dword [esp], eax
call fcn.100af6e0
mov edi, dword [ebx + 0x258]
mov ecx, edi
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x30]
push dword [esp + esi*4 + 0x210]
push dword [edi + 0x54]
push dword [edi + 0x5c]
call fcn.100aebb0
mov eax, esi
mov esi, dword [esp + 0x60]
mov dword [edi + 0x54], 0
inc eax
add esi, 0x18
cmp dword [esp + 0xb0], eax
je 0x100a07c3
mov edi, dword [ebx + 0x258]
xor edx, edx
mov dword [esp + 0x30], eax
test al, 1
sete cl
movsd xmm0, qword [ebx + 0xc]
movsd xmm1, qword [ebx + 0x14]
movsd xmm3, qword [esi - 0x14]
movsd xmm2, qword [esi - 0xc]
mov eax, dword [edi + 0x54]
cmp eax, dword [edi + 0x58]
jne 0x100a06b3
mov byte [esp + 0x60], cl
lea ebx, [eax + 1]
test eax, eax
je 0x100a05d6
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x100a05db
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
movzx ecx, byte [esp + 0x60]
jge 0x100a06b3
movaps xmmword [esp + 0x180], xmm3
movaps xmmword [esp + 0x1d0], xmm0
movaps xmmword [esp + 0x1a0], xmm2
movaps xmmword [esp + 0xa0], xmm1
mov dword [esp + 0x1e0], ebx
lea eax, [ebx*8]
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x100a062b
inc dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f34]
add esp, 8
mov ebx, eax
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x100a067c
mov ecx, dword [edi + 0x54]
shl ecx, 3
push ecx
push eax
push ebx
call fcn.10368490
add esp, 0xc
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x100a066c
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x100a066c
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov dword [edi + 0x5c], ebx
mov eax, dword [esp + 0x1e0]
mov dword [edi + 0x58], eax
mov eax, dword [edi + 0x54]
movaps xmm1, xmmword [esp + 0xa0]
movaps xmm2, xmmword [esp + 0x1a0]
xor edx, edx
movzx ecx, byte [esp + 0x60]
movaps xmm0, xmmword [esp + 0x1d0]
movaps xmm3, xmmword [esp + 0x180]
addps xmm1, xmm0
subps xmm1, xmm0
mulps xmm1, xmm3
addps xmm1, xmm0
mov dl, cl
movd xmm0, edx
pshufd xmm3, xmm0, 0x50
pslld xmm3, 0x1f
psrad xmm3, 0x1f
movdqa xmm0, xmmword [esp + 0x110]
pand xmm0, xmm3
pandn xmm3, xmmword [esp + 0xd0]
por xmm3, xmm0
pshufd xmm0, xmm3, 0xe1
mulps xmm0, xmm2
addps xmm0, xmm1
mov ecx, dword [edi + 0x5c]
movlps qword [ecx + eax*8], xmm0
inc dword [edi + 0x54]
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x258]
mov eax, dword [edi + 0x54]
cmp eax, dword [edi + 0x58]
jne 0x100a04f8
lea ebx, [eax + 1]
test eax, eax
je 0x100a072d
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x100a0732
mov ecx, 8
cmp ecx, ebx
cmovg ebx, ecx
cmp eax, ebx
jge 0x100a04f8
movdqa xmmword [esp + 0x60], xmm3
movaps xmmword [esp + 0x1a0], xmm2
movaps xmmword [esp + 0xa0], xmm1
lea eax, [ebx*8]
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x100a076c
inc dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f34]
add esp, 8
mov edx, dword [edi + 0x5c]
test edx, edx
je 0x100a04d9
mov ecx, dword [edi + 0x54]
shl ecx, 3
push ecx
push edx
mov dword [esp + 0x1d8], eax
push eax
call fcn.10368490
add esp, 0xc
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x100a04c2
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x100a04c2
dec dword [ecx + 0x36c]
jmp 0x100a04c2
mov edi, dword [0x1058eba8]
movss xmm7, dword [ebx + 0x44]
movss xmm1, dword [ebx + 0x48]
xorps xmm0, xmm0
movss dword [esp + 0x30], xmm1
ucomiss xmm1, xmm0
mov ecx, dword [esp + 0xc]
jbe 0x100a0918
test byte [ebx + 8], 0x80
jne 0x100a0918
mov ecx, dword [ebx + 0x258]
movss xmm3, dword [edi + 0x1634]
movss xmm1, dword [edi + 0x1638]
movss xmm0, dword [edi + 0x1640]
mulss xmm0, dword [edi + 0x1510]
movss xmm2, dword [0x10398490]
movaps xmm4, xmm2
minss xmm4, xmm3
xorps xmm5, xmm5
cmpltss xmm3, xmm5
andnps xmm3, xmm4
movss xmm4, dword [0x1039848c]
mulss xmm3, xmm4
movss xmm6, dword [0x10398564]
addss xmm3, xmm6
cvttss2si eax, xmm3
minss xmm2, xmm1
cmpltss xmm1, xmm5
andnps xmm1, xmm2
mulss xmm1, xmm4
addss xmm1, xmm6
cvttss2si edx, xmm1
shl edx, 8
movss xmm1, dword [edi + 0x163c]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x103984c0]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x103984e0]
or edx, eax
addps xmm1, xmmword [0x1048d350]
cvttps2dq xmm0, xmm1
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd esi, xmm0
or esi, edx
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
or eax, esi
mov edx, dword [esp + 8]
movsd xmm0, qword [edx + 0xc]
movsd xmm1, qword [edx + 0x14]
addps xmm1, xmm0
movlps qword [esp + 0x10], xmm1
sub esp, 0x18
movss xmm0, dword [esp + 0x48]
movss dword [esp + 0x14], xmm0
movss dword [esp + 0xc], xmm7
lea edx, [esp + 0x28]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x188]
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
movaps xmmword [esp + 0x78], xmm7
call fcn.100b03d0
movaps xmm7, xmmword [esp + 0x60]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x5c]
movsx esi, byte [eax]
cmp esi, 0xffffffff
je 0x100a0c28
mov dword [esp + 0xc0], edi
lea eax, [esi + esi*8]
lea edi, [eax + eax*2]
lea eax, [esi + edi]
add eax, 0x1048d06c
xorps xmm4, xmm4
xorps xmm3, xmm3
cmp esi, 3
ja 0x100a09f6
mov ecx, dword [esp + 8]
movsd xmm0, qword [ecx + 0xc]
movsd xmm3, qword [ecx + 0x14]
addps xmm3, xmm0
addps xmm3, xmmword [0x10398500]
jmp dword [esi*4 + 0x1048d690]
movaps xmmword [esp + 0xd0], xmm3
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0x258]
movss xmm1, dword [esi + edi + 0x1048d084]
movss xmm0, dword [0x1048d59c]
addss xmm0, xmm1
movaps xmm5, xmm1
movss dword [esp + 0x80], xmm1
subps xmm4, xmm3
movaps xmmword [esp + 0x110], xmm4
movsd xmm1, qword [eax]
movaps xmm2, xmm7
shufps xmm2, xmm7, 0
mulps xmm2, xmm1
movaps xmmword [esp + 0xb0], xmm2
movsd xmm1, qword [esi + edi + 0x1048d074]
mulps xmm1, xmm4
addps xmm1, xmm3
addps xmm1, xmmword [0x1048d350]
addps xmm1, xmm2
movlps qword [esp + 0x10], xmm1
sub esp, 0x14
movss dword [esp + 0xc], xmm5
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm7
lea ebx, [esp + 0x24]
mov dword [esp], ebx
mov dword [esp + 0x10], 0
movaps xmmword [esp + 0x74], xmm7
call fcn.100af7b0
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x258]
movss xmm0, dword [0x1048d5a0]
movss xmm2, dword [esp + 0x80]
addss xmm0, xmm2
movsd xmm1, qword [esi + edi + 0x1048d07c]
mulps xmm1, xmmword [esp + 0x110]
addps xmm1, xmmword [esp + 0xd0]
addps xmm1, xmmword [0x1048d350]
addps xmm1, xmmword [esp + 0xb0]
movlps qword [esp + 0x10], xmm1
sub esp, 0x14
movss dword [esp + 0xc], xmm0
movss dword [esp + 8], xmm2
movaps xmm0, xmmword [esp + 0x74]
movss dword [esp + 4], xmm0
mov dword [esp], ebx
mov dword [esp + 0x10], 0
call fcn.100af7b0
mov eax, dword [0x1058eba8]
movss xmm1, dword [eax + 0x17b4]
movss xmm0, dword [0x10398490]
movaps xmm2, xmm0
minss xmm2, xmm1
xorps xmm3, xmm3
cmpltss xmm1, xmm3
andnps xmm1, xmm2
movss xmm2, dword [0x1039848c]
mulss xmm1, xmm2
movss xmm4, dword [0x10398564]
addss xmm1, xmm4
cvttss2si ecx, xmm1
movss xmm1, dword [eax + 0x17b8]
minss xmm0, xmm1
cmpltss xmm1, xmm3
andnps xmm1, xmm0
mulss xmm1, xmm2
movss xmm0, dword [eax + 0x17c0]
mulss xmm0, dword [eax + 0x1510]
addss xmm1, xmm4
cvttss2si edx, xmm1
movss xmm1, dword [eax + 0x17bc]
unpcklps xmm1, xmm0
movaps xmm0, xmmword [0x103984c0]
minps xmm0, xmm1
cmpnltps xmm1, xmmword [0x103972c0]
andps xmm1, xmm0
mulps xmm1, xmmword [0x103984e0]
addps xmm1, xmmword [0x1048d350]
cvttps2dq xmm0, xmm1
movdqa xmm1, xmm0
pslld xmm0, 0x10
movd eax, xmm0
mov esi, dword [esp + 8]
mov edi, dword [esi + 0x258]
shl edx, 8
or edx, ecx
pslld xmm1, 0x18
pshufd xmm0, xmm1, 0x55
movd ecx, xmm0
movss xmm0, dword [0x1048be2c]
maxss xmm0, dword [esp + 0x30]
or eax, edx
or ecx, eax
mov eax, dword [edi + 0x54]
mov edx, dword [edi + 0x5c]
sub esp, 0x14
movss dword [esp + 0x10], xmm0
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov ecx, edi
call fcn.100ae100
mov dword [edi + 0x54], 0
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0xc0]
movss xmm0, dword [edi + 0x1558]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
mov esi, dword [esp + 8]
jbe 0x100a0dbb
test byte [esi + 8], 1
jne 0x100a0dbb
movss xmm1, dword [esi + 0x10]
mov eax, dword [0x1058eba8]
movss xmm3, dword [eax + 0x194c]
mulss xmm3, dword [esi + 0x250]
mov ecx, dword [esi + 0x2ec]
test ecx, ecx
je 0x100a0c76
mulss xmm3, dword [ecx + 0x250]
movss xmm4, dword [eax + 0x1550]
movss xmm2, dword [eax + 0x1634]
addss xmm4, xmm4
addss xmm4, xmm3
addss xmm1, xmm4
movss xmm3, dword [0x10398490]
movaps xmm4, xmm3
minss xmm4, xmm2
xorps xmm5, xmm5
cmpltss xmm2, xmm5
andnps xmm2, xmm4
movss xmm4, dword [0x1039848c]
mulss xmm2, xmm4
movss xmm6, dword [0x10398564]
addss xmm2, xmm6
cvttss2si edx, xmm2
movss xmm2, dword [eax + 0x1638]
minss xmm3, xmm2
cmpltss xmm2, xmm5
andnps xmm2, xmm3
mulss xmm2, xmm4
movss xmm3, dword [eax + 0x1640]
mulss xmm3, dword [eax + 0x1510]
addss xmm2, xmm6
cvttss2si ecx, xmm2
movss xmm2, dword [eax + 0x163c]
unpcklps xmm2, xmm3
xorps xmm3, xmm3
movaps xmm4, xmmword [0x103984c0]
minps xmm4, xmm2
cmpnltps xmm2, xmm3
mov esi, dword [esp + 8]
mov ebx, dword [esi + 0x258]
andps xmm2, xmm4
mulps xmm2, xmmword [0x103984e0]
addps xmm2, xmmword [0x1048d350]
cvttps2dq xmm2, xmm2
movdqa xmm3, xmm2
pslld xmm3, 0x18
pslld xmm2, 0x10
movd edi, xmm2
pshufd xmm2, xmm3, 0x55
movd eax, xmm2
movss xmm2, dword [esi + 0xc]
movss xmm3, dword [esi + 0x14]
addss xmm3, xmm2
movss xmm4, dword [esp + 0x30]
subss xmm3, xmm4
movss dword [esp + 0x10], xmm3
addss xmm4, xmm2
movss dword [esp + 0x40], xmm4
addss xmm1, dword [0x1048d360]
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x44], xmm1
shl ecx, 8
or ecx, edx
or edi, ecx
or eax, edi
sub esp, 0x10
movss dword [esp + 0xc], xmm0
lea ecx, [esp + 0x20]
mov dword [esp + 4], ecx
lea edx, [esp + 0x50]
mov dword [esp], edx
mov dword [esp + 8], eax
mov ecx, ebx
call fcn.100b0250
jmp 0x1009fb34
cmp byte [esp + 0x140], 0
je 0x100a0dd1
lea eax, [esi + 0x25c]
mov dword [esi + 0x258], eax
mov eax, dword [esp + 4]
cmp dword [eax + 0x1e5c], esi
jne 0x100a0f88
mov ecx, dword [esp + 4]
movss xmm1, dword [ecx + 0x1520]
movss xmm0, dword [esi + 0x44]
lea eax, [esp + 0x18]
movss xmm4, dword [ecx + 0x1948]
movaps xmm5, xmm4
shufps xmm5, xmm4, 0
movsd xmm3, qword [esi + 0xc]
movsd xmm2, qword [esi + 0x14]
addps xmm2, xmm3
subps xmm3, xmm5
addps xmm2, xmm5
movaps xmm5, xmm3
movlhps xmm5, xmm2
movups xmmword [esp + 0x10], xmm5
movups xmm6, xmmword [esp + 0x130]
movaps xmm7, xmm6
cmpleps xmm7, xmm5
cmpleps xmm5, xmm6
shufps xmm5, xmm7, 0xe4
pslld xmm5, 0x1f
movmskps ecx, xmm5
cmp cl, 0xf
je 0x100a0e5a
movaps xmm2, xmm1
cmpless xmm2, xmm0
andps xmm0, xmm2
andnps xmm2, xmm1
orps xmm0, xmm2
jmp 0x100a0e78
movss xmm1, dword [0x1048d360]
subss xmm1, xmm4
shufps xmm1, xmm1, 0
subps xmm3, xmm1
addps xmm2, xmm1
movlhps xmm3, xmm2
movups xmmword [esp + 0x10], xmm3
mov ecx, dword [esp + 4]
movss xmm1, dword [ecx + 0x1e68]
mov ecx, dword [0x1058eba8]
movss xmm3, dword [ecx + 0x1904]
movss xmm2, dword [ecx + 0x1908]
mulss xmm1, dword [ecx + 0x1510]
movss xmm4, dword [0x10398490]
movaps xmm5, xmm4
minss xmm5, xmm3
xorps xmm6, xmm6
cmpltss xmm3, xmm6
andnps xmm3, xmm5
movss xmm5, dword [0x1039848c]
mulss xmm3, xmm5
movss xmm7, dword [0x10398564]
addss xmm3, xmm7
cvttss2si esi, xmm3
minss xmm4, xmm2
cmpltss xmm2, xmm6
andnps xmm2, xmm4
mulss xmm2, xmm5
addss xmm2, xmm7
cvttss2si edx, xmm2
shl edx, 8
or edx, esi
mulss xmm1, dword [ecx + 0x1910]
movss xmm2, dword [ecx + 0x190c]
unpcklps xmm2, xmm1
xorps xmm1, xmm1
movaps xmm3, xmmword [0x103984c0]
minps xmm3, xmm2
cmpnltps xmm2, xmm1
andps xmm2, xmm3
mulps xmm2, xmmword [0x103984e0]
addps xmm2, xmmword [0x1048d350]
cvttps2dq xmm1, xmm2
movdqa xmm2, xmm1
pslld xmm2, 0x18
pslld xmm1, 0x10
movd ecx, xmm1
or ecx, edx
pshufd xmm1, xmm2, 0x55
movd edx, xmm1
or edx, ecx
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x258]
sub esp, 0x18
movss dword [esp + 0xc], xmm0
mov dword [esp + 4], eax
lea eax, [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 0x14], 0x40400000
mov dword [esp + 0x10], 0
call fcn.100b03d0
mov ecx, dword [esp + 0xc]
movss xmm0, dword [esi + 0x34]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
movaps xmm4, xmm0
jne 0x100a0fde
jp 0x100a0fde
mov eax, ecx
and eax, 0x808
movss xmm2, dword [esi + 0x14]
movss xmm3, dword [esi + 0x3c]
addss xmm3, xmm3
subss xmm2, xmm3
subss xmm2, dword [esi + 0x84]
cmp eax, 0x800
jne 0x100a0fcd
mov eax, dword [esp + 0x158]
movss xmm1, dword [eax]
movaps xmm4, xmm2
cmpless xmm4, xmm1
andps xmm1, xmm4
andnps xmm4, xmm2
orps xmm4, xmm1
movss xmm2, dword [esi + 0x38]
xorps xmm1, xmm1
ucomiss xmm2, xmm1
movss dword [esp + 0x60], xmm2
jne 0x100a0ff3
jnp 0x100a0ffd
movss xmm7, dword [esi + 0x40]
movaps xmm5, xmm2
jmp 0x100a103e
movss xmm3, dword [esi + 0x18]
movss xmm5, dword [esi + 0x40]
movaps xmm7, xmm5
addss xmm5, xmm5
subss xmm3, xmm5
subss xmm3, dword [esp + 0xe0]
subss xmm3, dword [esi + 0x88]
test cl, 8
jne 0x100a102d
movss xmm1, dword [esi + 0x28]
movaps xmm5, xmm3
cmpless xmm5, xmm1
andps xmm1, xmm5
andnps xmm5, xmm3
orps xmm5, xmm1
unpcklps xmm4, xmm5
xorps xmm1, xmm1
ucomiss xmm0, xmm1
movss xmm3, dword [esi + 0x3c]
movsd xmm1, qword [esi + 0x1c4]
movsd xmm2, qword [esi + 0x5c]
subps xmm1, xmm2
movaps xmm5, xmm3
unpcklps xmm5, xmm7
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esi + 0x48]
shufps xmm0, xmm0, 0
movaps xmm6, xmm0
cmpleps xmm6, xmm5
andps xmm5, xmm6
andnps xmm6, xmm0
orps xmm6, xmm5
addps xmm6, xmm1
movaps xmm1, xmm2
cvttps2dq xmm0, xmm6
cvtdq2ps xmm0, xmm0
addps xmm4, xmm0
movlhps xmm0, xmm4
movups xmmword [esi + 0x1e4], xmm0
movups xmm0, xmmword [esi + 0x1e4]
movups xmmword [esi + 0x1f4], xmm0
movss xmm0, dword [esp + 0x30]
movss xmm4, dword [esi + 0xc]
movss xmm6, dword [esi + 0x10]
movss dword [esp + 0xc0], xmm4
subss xmm4, xmm2
addss xmm4, xmm3
movss dword [esi + 0x214], xmm4
movaps xmm5, xmm2
shufps xmm5, xmm2, 0x55
movss dword [esp + 0xb0], xmm6
subss xmm6, xmm5
addss xmm6, xmm7
addss xmm6, dword [esp + 0xe0]
movss dword [esi + 0x218], xmm6
jne 0x100a1120
jp 0x100a1120
movaps xmm2, xmm1
movss xmm1, dword [esi + 0x14]
movaps xmm0, xmm3
addss xmm0, xmm3
subss xmm1, xmm0
movaps xmm0, xmm1
movaps xmm1, xmm2
subss xmm0, dword [esi + 0x84]
movss xmm2, dword [esp + 0x60]
ucomiss xmm2, dword [0x1048d340]
addss xmm4, xmm0
movss dword [esi + 0x21c], xmm4
jne 0x100a115e
jp 0x100a115e
movss xmm2, dword [esi + 0x18]
movaps xmm0, xmm7
addss xmm0, xmm7
subss xmm2, xmm0
subss xmm2, dword [esp + 0xe0]
subss xmm2, dword [esi + 0x88]
addss xmm6, xmm2
movss dword [esi + 0x220], xmm6
xorps xmm0, xmm0
addss xmm3, xmm0
subss xmm3, xmm1
movss xmm2, dword [esp + 0xe0]
addss xmm2, xmm7
subss xmm2, xmm5
addss xmm2, dword [esp + 0xb0]
movss dword [esi + 0x114], xmm3
addss xmm3, xmm0
addss xmm3, dword [esp + 0xc0]
xorps xmm1, xmm1
movlps qword [esi + 0x118], xmm1
movss dword [esi + 0xe4], xmm3
movss dword [esi + 0xe8], xmm2
movss dword [esi + 0xd4], xmm3
movss dword [esi + 0xd8], xmm2
mov eax, dword [esi + 0xd4]
mov ecx, dword [esi + 0xd8]
mov dword [esi + 0xe0], ecx
mov dword [esi + 0xdc], eax
movd xmm2, dword [esi + 0xe8]
movd xmm3, dword [esi + 0xe4]
punpckldq xmm3, xmm2
pshufd xmm2, xmm3, 0x44
movdqu xmmword [esi + 0xec], xmm2
mov dword [esi + 0x120], 0
movups xmmword [esi + 0xfc], xmm1
mov dword [esi + 0x110], 0
mov dword [esi + 0x10c], 0
movzx eax, word [esi + 0x126]
mov word [esi + 0x124], ax
mov word [esi + 0x126], 0
mov byte [esi + 0x12c], 0
movss xmm1, dword [esi + 0x68]
ucomiss xmm1, xmm0
seta byte [esi + 0x12d]
mov byte [esi + 0x12e], 0
lea ecx, [esi + 0x138]
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x155c]
sub esp, 8
movzx eax, byte [esp + 0x128]
mov dword [esp + 4], eax
movss dword [esp], xmm0
call fcn.100d0f40
mov dword [esi + 0x154], 0
mov dword [esi + 0x158], 0
cmp dword [esi + 0x160], 0
jns 0x100a1322
mov eax, dword [0x1058eba8]
test eax, eax
je 0x100a12b7
inc dword [eax + 0x36c]
push dword [0x1058ebb0]
push 0
call dword [0x10584f34]
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x164]
test eax, eax
je 0x100a1312
mov ecx, dword [esi + 0x15c]
shl ecx, 2
push ecx
push eax
push edi
call fcn.10368490
add esp, 0xc
mov eax, dword [esi + 0x164]
test eax, eax
je 0x100a1302
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x100a1302
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov dword [esi + 0x164], edi
mov dword [esi + 0x160], 0
mov dword [esi + 0x15c], 0
lea eax, [esi + 0x238]
mov dword [esi + 0x168], eax
mov dword [esi + 0x16c], 0
mov dword [esi + 0x174], 1
mov eax, dword [esp + 0x28]
test eax, eax
je 0x100a135c
mov eax, dword [eax + 0x174]
jmp 0x100a1361
mov eax, 1
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x178], eax
mov dword [esi + 0x180], 0xffffffff
mov dword [esi + 0x17c], 0xffffffff
movss xmm0, dword [esi + 0x234]
movss dword [esi + 0x184], xmm0
mov dword [esi + 0x188], 0xbf800000
cmp dword [esi + 0x190], 0
jns 0x100a1420
mov eax, dword [0x1058eba8]
test eax, eax
je 0x100a13b1
inc dword [eax + 0x36c]
push dword [0x1058ebb0]
push 0
call dword [0x10584f34]
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x194]
test eax, eax
je 0x100a140c
mov ecx, dword [esi + 0x18c]
shl ecx, 2
push ecx
push eax
push edi
call fcn.10368490
add esp, 0xc
mov eax, dword [esi + 0x194]
test eax, eax
je 0x100a13fc
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x100a13fc
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov dword [esi + 0x194], edi
mov dword [esi + 0x190], 0
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x18c], 0
cmp dword [esi + 0x19c], 0
jns 0x100a14b1
mov eax, dword [0x1058eba8]
test eax, eax
je 0x100a1442
inc dword [eax + 0x36c]
push dword [0x1058ebb0]
push 0
call dword [0x10584f34]
add esp, 8
mov edi, eax
mov eax, dword [esi + 0x1a0]
test eax, eax
je 0x100a149d
mov ecx, dword [esi + 0x198]
shl ecx, 2
push ecx
push eax
push edi
call fcn.10368490
add esp, 0xc
mov eax, dword [esi + 0x1a0]
test eax, eax
je 0x100a148d
mov ecx, dword [0x1058eba8]
test ecx, ecx
je 0x100a148d
dec dword [ecx + 0x36c]
push dword [0x1058ebb0]
push eax
call dword [0x10584f38]
add esp, 8
mov dword [esi + 0x1a0], edi
mov dword [esi + 0x19c], 0
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x198], 0
movzx eax, byte [esi + 0xa8]
test al, al
jle 0x100a14ce
dec al
mov byte [esi + 0xa8], al
movzx eax, byte [esi + 0xa9]
test al, al
jle 0x100a14e1
dec al
mov byte [esi + 0xa9], al
test byte [esp + 0x15c], 1
je 0x100a15c7
push esi
call fcn.10097c60
add esp, 4
mov eax, dword [0x1058eba8]
mov ecx, dword [esi + 8]
test ecx, 0x40000
jne 0x100a1537
cmp dword [esi + 0x2f0], esi
je 0x100a154d
and ecx, 0x4000000
jne 0x100a154d
mov ecx, dword [esi + 0x300]
test ecx, ecx
je 0x100a154d
mov dword [eax + 0x1d54], ecx
mov dword [eax + 0x1d58], 0
jmp 0x100a15c3
mov dword [eax + 0x1d58], 0
mov dword [eax + 0x1d54], 0
jmp 0x100a15c3
mov ecx, dword [eax + 0x1d50]
mov edx, dword [eax + 0x1d98]
mov dword [eax + 0x1d54], 0
mov dword [eax + 0x1d58], 0
mov dword [ecx + edx*4 + 0x300], 0
mov ecx, dword [eax + 0x1d50]
shl edx, 4
xorps xmm0, xmm0
movups xmmword [ecx + edx + 0x308], xmm0
mov word [eax + 0x1da5], 1
movups xmmword [eax + 0x1da8], xmm0
mov dword [eax + 0x1db8], 0
mov eax, dword [0x1058eba8]
mov cl, 1
cmp byte [eax + 0x1dbc], 0
jne 0x100a15bd
movzx ecx, byte [eax + 0x1da5]
mov byte [eax + 0x1da4], cl
mov ecx, dword [esp + 0xc]
test cl, 1
jne 0x100a1e53
movss xmm5, dword [esp + 0x108]
movss xmm6, dword [esi + 0x48]
mov ecx, dword [0x1058eba8]
mov eax, dword [esi + 8]
mov dword [esp + 0xb0], eax
test al, 0x20
jne 0x100a15fe
cmp dword [ecx + 0x1538], 0xffffffff
setne al
jmp 0x100a1600
xor eax, eax
movss xmm0, dword [esp + 0x10c]
movss dword [esp + 0x80], xmm0
movss xmm2, dword [esp + 0x104]
subss xmm5, xmm6
addss xmm6, dword [esp + 0x100]
mov edx, dword [ecx + 0x1c40]
mov dword [esp + 0x60], ecx
mov dword [esp + 0xa0], edx
mov ecx, edx
or ecx, 0x10
mov edx, dword [esp + 0x60]
mov dword [edx + 0x1c40], ecx
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x120], 1
movss xmm7, dword [ecx + 0x154c]
movss xmm1, dword [ecx + 0x1948]
xorps xmm0, xmm0
movlps qword [esp + 0xf8], xmm0
movlps qword [esp + 0xf0], xmm0
movaps xmm4, xmm7
cmp dword [ebp + 0xc], 0
je 0x100a16a6
movaps xmm4, xmm7
addss xmm4, xmm1
movaps xmm0, xmm5
subss xmm0, xmm4
subss xmm0, xmm7
movss dword [esp + 0xf8], xmm0
movss dword [esp + 0xfc], xmm2
test al, al
movaps xmmword [esp + 0xd0], xmm6
movss dword [esp + 0x110], xmm2
movss dword [esp + 0xc0], xmm5
movss dword [esp + 0x120], xmm1
je 0x100a1872
mov eax, dword [ecx + 0x1538]
test eax, eax
je 0x100a1703
cmp eax, 1
jne 0x100a1724
addss xmm4, xmm1
movaps xmm0, xmm5
subss xmm0, xmm4
subss xmm0, xmm7
movss dword [esp + 0xf0], xmm0
movss dword [esp + 0xf4], xmm2
jmp 0x100a1724
movaps xmm0, xmm6
addss xmm0, xmm7
subss xmm0, xmm7
movss dword [esp + 0xf0], xmm0
movss dword [esp + 0xf4], xmm2
addss xmm7, xmm1
mov eax, 0x8d4b4bf0
mov ecx, 0x698c3b8e
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov ecx, 0xef02d099
mov eax, 0xa99f9ee7
mov edx, 0xa99f9ee7
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
mov ecx, 0xc10408d3
mov edx, 0x3adc7ac2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov ecx, 0xef02d0dc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
xor eax, eax
lea ecx, [esp + 0x10]
movdqa xmm0, xmmword [esp + 0x40]
pxor xmm0, xmmword [ecx]
movdqa xmmword [esp + 0x40], xmm0
mov eax, dword [esi + 0xc8]
mov ecx, dword [esi + 0xd0]
mov esi, dword [ecx + eax*4 - 4]
not esi
movd edx, xmm0
test dl, dl
je 0x100a17f5
lea ecx, [esp + 0x42]
mov eax, esi
jmp 0x100a17da
mov byte [esp + 0x30], bl
movzx edx, dl
mov ebx, eax
shr ebx, 8
movzx eax, al
xor eax, edx
xor ebx, dword [eax*4 + 0x1048cb9c]
inc ecx
movzx edx, byte [esp + 0x30]
mov eax, edx
mov edi, eax
mov eax, ebx
test dl, dl
mov edx, edi
je 0x100a17f7
movzx ebx, byte [ecx - 1]
cmp dl, 0x23
jne 0x100a17b0
cmp bl, 0x23
jne 0x100a17b0
cmp byte [ecx], 0x23
cmove eax, esi
mov byte [esp + 0x30], 0x23
jmp 0x100a17b4
mov ebx, esi
not ebx
mov eax, dword [esp + 0x60]
cmp dword [eax + 0x1c2c], ebx
jne 0x100a180c
mov byte [eax + 0x1c30], 1
movaps xmmword [esp + 0xe0], xmm7
movaps xmmword [esp + 0x30], xmm4
cmp dword [eax + 0x1bf0], ebx
mov esi, dword [esp + 8]
jne 0x100a182b
mov dword [eax + 0x1bf4], ebx
lea eax, [esp + 0xf0]
push eax
push ebx
call fcn.100cfc60
add esp, 8
test al, al
je 0x100a1847
mov byte [esi + 0x92], 1
mov ecx, dword [esp + 0x60]
movaps xmm6, xmmword [esp + 0xd0]
movss xmm5, dword [esp + 0xc0]
movaps xmm4, xmmword [esp + 0x30]
movaps xmm7, xmmword [esp + 0xe0]
movss xmm1, dword [esp + 0x120]
cmp dword [ebp + 0xc], 0
movaps xmmword [esp + 0x30], xmm4
movaps xmmword [esp + 0xe0], xmm7
je 0x100a19b0
mov eax, 0x8e484bf0
mov ecx, 0x3adc3f91
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov eax, 0xef02d0dc
mov ecx, 0xa99f9ee7
mov edx, 0xc10408d3
mov edi, esi
mov esi, 0x3adc7ac2
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
xor eax, eax
lea ecx, [esp + 0x10]
movdqa xmm0, xmmword [esp + 0x40]
pxor xmm0, xmmword [ecx]
movdqa xmmword [esp + 0x40], xmm0
mov eax, dword [edi + 0xc8]
mov ecx, dword [edi + 0xd0]
mov esi, dword [ecx + eax*4 - 4]
movd ebx, xmm0
test bl, bl
je 0x100a1944
not esi
lea ecx, [esp + 0x42]
mov edx, esi
jmp 0x100a1929
movzx ebx, bl
movzx edi, dl
shr edx, 8
xor edi, ebx
xor edx, dword [edi*4 + 0x1048cb9c]
inc ecx
mov ebx, eax
test al, al
je 0x100a1940
movzx eax, byte [ecx - 1]
cmp bl, 0x23
jne 0x100a1910
cmp al, 0x23
jne 0x100a1910
cmp byte [ecx], 0x23
cmove edx, esi
mov al, 0x23
jmp 0x100a1910
not edx
mov esi, edx
mov eax, dword [0x1058eba8]
cmp dword [eax + 0x1c2c], esi
jne 0x100a1958
mov byte [eax + 0x1c30], 1
cmp dword [eax + 0x1bf0], esi
jne 0x100a1966
mov dword [eax + 0x1bf4], esi
lea eax, [esp + 0xf8]
push eax
push esi
call fcn.100cf9f0
add esp, 8
test al, al
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x60]
movaps xmm6, xmmword [esp + 0xd0]
movss xmm5, dword [esp + 0xc0]
movaps xmm4, xmmword [esp + 0x30]
movaps xmm7, xmmword [esp + 0xe0]
movss xmm1, dword [esp + 0x120]
je 0x100a19b0
mov eax, dword [ebp + 0xc]
mov byte [eax], 0
mov dword [esi + 0x120], 0
mov eax, dword [esp + 0xa0]
mov dword [ecx + 0x1c40], eax
pxor xmm3, xmm3
test dword [esp + 0xb0], 0x100000
je 0x100a19e3
mulss xmm1, dword [0x1048d470]
movaps xmm3, xmm1
mov eax, dword [0x1058eba8]
mov edx, dword [ebp + 8]
cmp edx, 0xffffffff
movdqa xmmword [esp + 0x120], xmm3
je 0x100a1a1a
mov esi, edx
jmp 0x100a1a0c
cmp byte [edx + 1], 0x23
je 0x100a1a2e
inc edx
cmp edx, 0xffffffff
je 0x100a1a29
movzx ecx, byte [edx]
cmp ecx, 0x23
je 0x100a1a00
test ecx, ecx
jne 0x100a1a06
jmp 0x100a1a2e
mov esi, edx
movss xmm1, dword [eax + 0x1948]
jmp 0x100a1ac7
mov edx, 0xffffffff
mov ecx, dword [esp + 0x60]
movss xmm1, dword [eax + 0x1948]
cmp edx, esi
je 0x100a1ac7
mov edi, esi
mov ecx, dword [eax + 0x1944]
sub esp, 0x1c
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
movss dword [esp + 4], xmm1
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0xbf800000
mov dword [esp + 8], 0x7f7fffff
call fcn.100c3c60
movdqa xmm3, xmmword [esp + 0x120]
movaps xmm7, xmmword [esp + 0xe0]
movaps xmm4, xmmword [esp + 0x30]
movss xmm5, dword [esp + 0xc0]
movaps xmm6, xmmword [esp + 0xd0]
mov ecx, dword [esp + 0x60]
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0x14]
addss xmm0, dword [0x1048d380]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
jmp 0x100a1acb
pxor xmm0, xmm0
xorps xmm2, xmm2
addss xmm2, xmm1
addss xmm0, xmm3
movss dword [esp + 0x168], xmm0
movss dword [esp + 0x16c], xmm2
movss xmm1, dword [ecx + 0x154c]
ucomiss xmm7, xmm1
jbe 0x100a1afd
addss xmm7, dword [ecx + 0x1564]
mov edi, esi
ucomiss xmm4, xmm1
jbe 0x100a1b0c
addss xmm4, dword [ecx + 0x1564]
movss xmm1, dword [ecx + 0x1530]
xorps xmm2, xmm2
ucomiss xmm1, xmm2
movss dword [esp + 0x30], xmm1
jbe 0x100a1bcd
movss xmm3, dword [0x10398490]
ucomiss xmm3, xmm1
jbe 0x100a1bcd
movaps xmm2, xmm1
movaps xmm1, xmm4
movss xmm4, dword [0x103984f0]
addss xmm4, xmm2
andps xmm4, xmmword [0x1048d370]
addss xmm4, xmm4
movaps xmm2, xmm3
subss xmm2, xmm4
minss xmm3, xmm2
xorps xmm4, xmm4
cmpltss xmm2, xmm4
andnps xmm2, xmm3
movaps xmm3, xmm1
cmpless xmm3, xmm7
movaps xmm4, xmm3
andps xmm4, xmm7
andnps xmm3, xmm1
orps xmm3, xmm4
movaps xmm4, xmm5
subss xmm4, xmm6
subss xmm4, xmm7
subss xmm4, xmm1
subss xmm4, xmm0
minss xmm3, xmm4
mulss xmm3, xmm2
movaps xmm2, xmm3
cmpless xmm2, xmm7
movaps xmm4, xmm2
andnps xmm4, xmm3
andps xmm2, xmm7
orps xmm2, xmm4
movaps xmm4, xmm3
cmpless xmm4, xmm1
movaps xmm5, xmm4
andnps xmm5, xmm3
andps xmm4, xmm1
orps xmm4, xmm5
movss xmm5, dword [esp + 0xc0]
movaps xmm7, xmm2
movaps xmm2, xmm5
subss xmm2, xmm4
addss xmm6, xmm7
movss dword [esp + 0x10], xmm6
movss xmm1, dword [esp + 0x110]
movss dword [esp + 0x14], xmm1
movss dword [esp + 0x18], xmm2
movss xmm3, dword [esp + 0x80]
movss dword [esp + 0x1c], xmm3
movss xmm4, dword [ecx + 0x1564]
addss xmm4, xmm2
minss xmm4, xmm5
movss dword [esp + 0x40], xmm6
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x48], xmm4
movss dword [esp + 0x4c], xmm3
test dword [esp + 0xb0], 0x100000
je 0x100a1dbd
movaps xmm7, xmm2
subss xmm7, xmm6
subss xmm7, xmm0
mulss xmm7, dword [esp + 0x30]
addss xmm7, xmm6
addss xmm7, xmm0
minss xmm2, xmm7
cmpltss xmm7, xmm6
movaps xmm0, xmm7
andnps xmm0, xmm2
andps xmm7, xmm6
orps xmm7, xmm0
ucomiss xmm7, xmm6
jbe 0x100a1dbd
movss xmm5, dword [esp + 0x80]
addss xmm5, dword [esp + 0x110]
movss xmm6, dword [0x10398564]
mov eax, dword [0x1058eba8]
movss xmm0, dword [eax + 0x15f0]
mulss xmm0, dword [eax + 0x1510]
movss xmm2, dword [eax + 0x15e4]
movss xmm1, dword [0x10398490]
movaps xmm3, xmm1
minss xmm3, xmm2
movss dword [esp + 0x30], xmm4
xorps xmm4, xmm4
cmpltss xmm2, xmm4
andnps xmm2, xmm3
movss xmm3, dword [0x1039848c]
mulss xmm2, xmm3
addss xmm2, xmm6
cvttss2si edx, xmm2
movss xmm2, dword [eax + 0x15e8]
minss xmm1, xmm2
cmpltss xmm2, xmm4
andnps xmm2, xmm1
mulss xmm2, xmm3
addss xmm2, xmm6
cvttss2si ecx, xmm2
mulss xmm5, xmm6
shl ecx, 8
or ecx, edx
movss xmm1, dword [eax + 0x15ec]
unpcklps xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmmword [0x103984c0]
minps xmm2, xmm1
cmpnltps xmm1, xmm0
andps xmm1, xmm2
mulps xmm1, xmmword [0x103984e0]
addps xmm1, xmmword [0x1048d350]
cvttps2dq xmm0, xmm1
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd eax, xmm0
or eax, ecx
pshufd xmm0, xmm1, 0x55
movd ecx, xmm0
or ecx, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x258]
sub esp, 0x10
movss dword [esp + 8], xmm5
movss dword [esp + 4], xmm7
mov dword [esp], eax
mov dword [esp + 0xc], ecx
movaps xmmword [esp + 0xd0], xmm7
call fcn.100c4070
mov ecx, dword [esp + 0x70]
add esp, 0x10
movaps xmm0, xmmword [esp + 0x120]
mulss xmm0, dword [0x10398564]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movaps xmm1, xmmword [esp + 0xc0]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x30]
minss xmm0, xmm1
movss dword [esp + 0x48], xmm0
cmp edi, 0xffffffff
je 0x100a1e4f
add ecx, 0x1530
mov eax, ecx
mov esi, edi
jmp 0x100a1dec
cmp byte [esi + 1], 0x23
je 0x100a1dff
inc esi
cmp esi, 0xffffffff
je 0x100a1dfa
movzx ecx, byte [esi]
cmp ecx, 0x23
je 0x100a1de0
test ecx, ecx
jne 0x100a1de6
jmp 0x100a1dff
mov esi, 0xffffffff
cmp esi, edi
je 0x100a1e4f
mov ebx, dword [0x1058eba8]
mov ecx, dword [ebx + 0x1bbc]
lea edx, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x170]
push eax
push esi
push edi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x28]
push eax
push dword [ecx + 0x258]
call fcn.10094ad0
add esp, 0x20
cmp byte [ebx + 0x2f74], 0
je 0x100a1e4f
push esi
push edi
lea eax, [esp + 0x18]
push eax
call fcn.100946e0
add esp, 0xc
mov esi, dword [esp + 8]
mov dword [esi + 0x224], 0
mov eax, dword [esi + 0x50]
mov ecx, dword [esp + 4]
mov dword [ecx + 0x1c58], eax
mov eax, dword [ecx + 0x1c40]
mov dword [ecx + 0x1c5c], eax
mov ebx, dword [0x1058eba8]
movss xmm0, dword [esp + 0x100]
movss xmm2, dword [ebx + 0x1574]
subss xmm0, xmm2
movss xmm1, dword [ebx + 0xe4]
ucomiss xmm1, xmm0
jae 0x100a1ea2
xor eax, eax
jmp 0x100a1ee8
movss xmm0, dword [esp + 0x104]
movss xmm3, dword [ebx + 0x1578]
subss xmm0, xmm3
addss xmm2, dword [esp + 0x108]
addss xmm3, dword [esp + 0x10c]
movss xmm4, dword [ebx + 0xe8]
cmpltps xmm1, xmm2
cmpleps xmm0, xmm4
andps xmm0, xmm1
ucomiss xmm3, xmm4
movd ecx, xmm0
seta al
and al, cl
mov ecx, dword [esp + 0x58]
movzx eax, al
mov edx, dword [esp + 4]
mov dword [edx + 0x1c60], eax
movups xmm0, xmmword [esp + 0x100]
movups xmmword [edx + 0x1c64], xmm0
mov dword [esp + 0x58], ecx
test ecx, ecx
je 0x100a1f1f
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0x128]
jmp 0x100a2009
mov dword [esp + 0x30], ebx
mov eax, 0x824b4ef0
mov ecx, 0x798f2997
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov ecx, 0xef478093
mov eax, 0xa99f9ee7
mov edx, 0xa99f9ee7
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
mov ecx, 0xc10408d3
mov edx, 0x3adc7ac2
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov ecx, 0xef02d0dc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x10]
xor ecx, ecx
movdqa xmm0, xmmword [esp + 0x40]
pxor xmm0, xmmword [eax]
movdqa xmmword [esp + 0x40], xmm0
mov eax, dword [esi + 0xc8]
mov ecx, dword [esi + 0xd0]
mov edi, dword [ecx + eax*4 - 4]
not edi
movd ebx, xmm0
test bl, bl
je 0x100a1fe4
lea edx, [esp + 0x42]
mov ecx, edi
jmp 0x100a1fcd
movzx ebx, bl
mov esi, ecx
shr esi, 8
movzx ecx, cl
xor ecx, ebx
xor esi, dword [ecx*4 + 0x1048cb9c]
inc edx
mov ebx, eax
mov ecx, esi
test al, al
je 0x100a1fe6
movzx eax, byte [edx - 1]
cmp bl, 0x23
jne 0x100a1fb0
cmp al, 0x23
jne 0x100a1fb0
cmp byte [edx], 0x23
cmove ecx, edi
mov al, 0x23
jmp 0x100a1fb0
mov esi, edi
not esi
mov ebx, dword [esp + 0x30]
cmp dword [ebx + 0x1c2c], esi
jne 0x100a1ffb
mov byte [ebx + 0x1c30], 1
cmp dword [ebx + 0x1bf0], esi
jne 0x100a2009
mov dword [ebx + 0x1bf4], esi
mov edi, dword [esp + 8]
mov dword [edi + 0x128], esi
mov eax, dword [ebx + 0x1bbc]
mov byte [eax + 0x90], 1
mov esi, dword [ebx + 0x1bbc]
mov ecx, dword [esi + 0x258]
movups xmm0, xmmword [edi + 0x1d4]
sub esp, 0x14
movups xmmword [esp], xmm0
mov dword [esp + 0x10], 1
call fcn.100adbc0
mov eax, dword [esi + 0x258]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
shl ecx, 4
movups xmm0, xmmword [ecx + eax - 0x10]
movups xmmword [esi + 0x204], xmm0
mov edx, edi
inc word [edi + 0x9a]
mov byte [edi + 0x90], 0
mov eax, dword [esp + 4]
mov dword [eax + 0x1c84], 0
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x7c]
jne 0x100a2096
movzx eax, byte [edx + 0x93]
jmp 0x100a21bf
cmp dword [esp + 0x58], 0
mov eax, dword [esp + 0x28]
je 0x100a212a
test byte [esp + 0xc], 0x40
jne 0x100a20f4
cmp byte [edx + 0xa8], 0
jg 0x100a20f4
cmp byte [edx + 0xa9], 0
jg 0x100a20f4
mov ecx, dword [esp + 4]
cmp byte [ecx + 0x2f74], 0
jne 0x100a20f4
movss xmm0, dword [edx + 0x1b4]
ucomiss xmm0, dword [edx + 0x1bc]
jae 0x100a20ed
movss xmm0, dword [edx + 0x1b8]
ucomiss xmm0, dword [edx + 0x1c0]
jb 0x100a20f4
mov byte [edx + 0xb0], 1
test eax, eax
je 0x100a212a
cmp byte [eax + 0x91], 0
jne 0x100a210a
cmp byte [eax + 0xb0], 0
jle 0x100a211a
mov byte [edx + 0xb0], 1
cmp byte [eax + 0x91], 0
jne 0x100a2123
cmp byte [eax + 0xb1], 0
jle 0x100a212a
mov byte [edx + 0xb1], 1
xorps xmm0, xmm0
mov eax, dword [esp + 4]
ucomiss xmm0, dword [eax + 0x1510]
jae 0x100a215a
mov al, 1
cmp byte [edx + 0xb0], 0
jg 0x100a2163
cmp byte [edx + 0xb1], 0
jg 0x100a2163
cmp byte [edx + 0xb2], 0
setg al
jmp 0x100a2163
mov byte [edx + 0xb0], 1
mov al, 1
mov byte [edx + 0x95], al
movzx ecx, byte [edx + 0xb3]
test cl, cl
jle 0x100a2183
dec cl
mov byte [edx + 0xb3], cl
or dword [edx + 8], 0xc0200
cmp byte [edx + 0x91], 0
je 0x100a21aa
cmp byte [edx + 0xa8], 0
jg 0x100a21b7
cmp byte [edx + 0xa9], 0
jg 0x100a21b7
cmp byte [edx + 0xb1], 0
setle al
jmp 0x100a21b9
cmp byte [edx + 0x8e], 0
je 0x100a218c
test al, al
jne 0x100a218c
xor eax, eax
mov byte [edx + 0x93], al
test al, al
sete al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xorps xmm2, xmm2
jmp 0x1009f276
cmp byte [esi + 0x8f], 0
je 0x1009f0f6
mov eax, dword [0x1058eba8]
movzx ecx, byte [eax + 0xb4]
mov dword [esp + 0x5c], eax
movss xmm0, dword [eax + 0x1948]
movss xmm1, dword [0x1048d4d0]
mulss xmm1, xmm0
mulss xmm0, dword [0x1048d4d8]
addss xmm1, dword [esp + 0x1a0]
movaps xmm2, xmm1
cmpless xmm2, xmm0
movaps xmm3, xmm2
andnps xmm3, xmm1
andps xmm2, xmm0
orps xmm2, xmm3
cvttps2dq xmm0, xmm2
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1048d4dc]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
movaps xmmword [esp + 0x1b0], xmm0
xorps xmm0, xmm0
mov byte [esp + 0x9f], cl
test cl, cl
je 0x100a225e
movss xmm0, dword [0x1048d4e0]
movaps xmmword [esp + 0x190], xmm0
mov dword [esi + 0x120], 1
mov eax, 0x92415af0
mov ecx, 0x3a99208b
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov eax, 0xef02d0dc
mov ecx, 0xa99f9ee7
mov edx, 0xc10408d3
mov esi, 0x3adc7ac2
mov dword [esp + 0x14], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
xor eax, eax
lea ecx, [esp + 0x10]
movaps xmm0, xmmword [esp + 0x40]
xorps xmm0, xmmword [ecx]
mov dword [esp + 0x154], 0
movaps xmmword [esp + 0x40], xmm0
lea eax, [esp + 0x40]
push eax
call fcn.100a99a0
add esp, 4
movaps xmm0, xmmword [esp + 0x190]
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x190], xmm0
movaps xmm0, xmmword [esp + 0x1b0]
shufps xmm0, xmm0, 0
movaps xmm1, xmmword [0x103985f0]
movaps xmmword [esp + 0x200], xmm0
xorps xmm1, xmm0
movaps xmmword [esp + 0x1f0], xmm1
movaps xmm6, xmmword [0x1048d3e0]
mov edi, 0x1048d014
xor ebx, ebx
movaps xmm4, xmm6
jmp 0x100a2431
xor eax, eax
test dl, dl
sete al
xor eax, 0x1f
test cl, cl
mov ecx, 0x20
cmovne eax, ecx
mov edx, dword [0x1058eba8]
shl eax, 4
movss xmm0, dword [edx + eax + 0x15e4]
movss xmm3, dword [0x10398490]
movaps xmm1, xmm3
minss xmm1, xmm0
xorps xmm2, xmm2
cmpltss xmm0, xmm2
andnps xmm0, xmm1
movss xmm5, dword [0x1039848c]
mulss xmm0, xmm5
movss xmm7, dword [0x10398564]
addss xmm0, xmm7
cvttss2si ecx, xmm0
movss xmm0, dword [edx + eax + 0x15e8]
movaps xmm1, xmm3
minss xmm1, xmm0
cmpltss xmm0, xmm2
andnps xmm0, xmm1
movss xmm1, dword [edx + eax + 0x15f0]
mulss xmm1, dword [edx + 0x1510]
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si esi, xmm0
movss xmm0, dword [edx + eax + 0x15ec]
unpcklps xmm0, xmm1
movaps xmm1, xmmword [0x103984c0]
minps xmm1, xmm0
cmpnltps xmm0, xmmword [0x103972c0]
andps xmm0, xmm1
mulps xmm0, xmmword [0x103984e0]
addps xmm0, xmmword [0x1048d350]
cvttps2dq xmm0, xmm0
movdqa xmm1, xmm0
pslld xmm0, 0x10
movd eax, xmm0
pslld xmm1, 0x18
pshufd xmm0, xmm1, 0x55
movd edx, xmm0
shl esi, 8
or esi, ecx
or eax, esi
mov esi, dword [esp + 8]
or edx, eax
mov dword [esp + ebx*4 + 0x210], edx
inc ebx
add edi, 0x18
cmp dword [esp + 0xb0], ebx
je 0x100a27e3
movsd xmm1, qword [edi - 8]
movsd xmm3, qword [edi]
movsd xmm0, qword [esi + 0xc]
movsd xmm2, qword [esi + 0x14]
addps xmm2, xmm0
subps xmm2, xmm0
movaps xmmword [esp + 0x170], xmm1
mulps xmm2, xmm1
addps xmm2, xmm0
movlhps xmm2, xmm2
movaps xmm1, xmm3
mulps xmm1, xmmword [esp + 0x200]
movaps xmm0, xmmword [esp + 0x190]
movaps xmmword [esp + 0x140], xmm3
mulps xmm0, xmm3
movaps xmmword [esp + 0x1c0], xmm0
movlhps xmm0, xmm1
movaps xmm1, xmm2
subps xmm1, xmm0
addps xmm0, xmm2
movaps xmm2, xmm0
movsd xmm2, xmm1
movupd xmmword [esp + 0x10], xmm2
movaps xmm2, xmm0
unpckhpd xmm2, xmm0
ucomiss xmm1, xmm2
jbe 0x100a24b2
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x18], xmm1
shufps xmm1, xmm1, 0x55
shufps xmm0, xmm0, 0xff
ucomiss xmm1, xmm0
jbe 0x100a24cb
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x1c], xmm1
mov eax, ebx
shr eax, 8
mov ecx, dword [esi + 0xc8]
mov edx, dword [esi + 0xd0]
mov ecx, dword [edx + ecx*4 - 4]
not ecx
mov edx, ebx
xor edx, ecx
shr ecx, 8
movzx edx, dl
xor ecx, dword [edx*4 + 0x1048cb9c]
mov edx, ecx
xor ecx, eax
mov esi, ebx
shr esi, 0x10
shr edx, 8
movzx eax, cl
xor edx, dword [eax*4 + 0x1048cb9c]
mov eax, edx
xor edx, esi
mov ecx, ebx
shr ecx, 0x18
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x1048cb9c]
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x1048cb9c]
not eax
mov ecx, dword [0x1058eba8]
cmp dword [ecx + 0x1c2c], eax
jne 0x100a2545
mov byte [ecx + 0x1c30], 1
movaps xmmword [esp + 0xa0], xmm6
movaps xmmword [esp + 0x80], xmm4
cmp dword [ecx + 0x1bf0], eax
jne 0x100a2563
mov dword [ecx + 0x1bf4], eax
push 0x40800
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0x100]
push ecx
push eax
lea eax, [esp + 0x20]
push eax
call fcn.100cf390
add esp, 0x14
movzx eax, byte [esp + 0xf0]
movzx ecx, byte [esp + 0xf8]
or cl, al
mov esi, dword [esp + 8]
jne 0x100a25b3
movaps xmm4, xmmword [esp + 0x80]
movaps xmm6, xmmword [esp + 0xa0]
jmp 0x100a27b6
mov ecx, ebx
and ecx, 1
mov edx, 6
sub edx, ecx
mov ecx, dword [esp + 0x5c]
mov dword [ecx + 0x1e90], edx
test al, al
movaps xmm4, xmmword [esp + 0x80]
movaps xmm6, xmmword [esp + 0xa0]
je 0x100a27b6
cmp byte [ecx + 0x3dd], 0
je 0x100a26a8
test ebx, ebx
jne 0x100a26a8
lea ecx, [esp + 0x40]
mov edx, esi
lea eax, [esp + 0x160]
push eax
call fcn.100a8c20
add esp, 4
mov eax, dword [0x1058eba8]
cmp dword [eax + 0x1bf0], 0
movsd xmm6, qword [esp + 0x40]
setne byte [eax + 0x1bfc]
je 0x100a2644
mov dword [eax + 0x1bf8], 0
mov word [eax + 0x1bff], 0
mov dword [eax + 0x1c28], 0xffffffff
mov dword [eax + 0x1bf0], 0
mov word [eax + 0x1bfd], 0
mov dword [eax + 0x1c20], 0
mov word [eax + 0x1c01], 0
mov dword [eax + 0x1c04], 0
mov dword [eax + 0x1c08], 0
mov dword [eax + 0x1c14], 0
mov dword [eax + 0x1c10], 0
mov al, 1
mov dword [esp + 0x154], eax
movaps xmm4, xmmword [esp + 0x80]
jmp 0x100a27b6
movaps xmm4, xmmword [esp + 0x170]
movaps xmm0, xmm4
cmpeqps xmm0, xmmword [0x103984c0]
movaps xmm5, xmm4
cmpeqps xmm5, xmmword [0x103972c0]
movaps xmmword [esp + 0xa0], xmm5
movsd xmm1, qword [ecx + 0xe4]
movsd xmm2, qword [ecx + 0x1c18]
subps xmm1, xmm2
movaps xmm2, xmmword [esp + 0x180]
andps xmm2, xmm0
andnps xmm0, xmmword [0x1048d4f0]
orps xmm0, xmm2
movaps xmm3, xmmword [esp + 0x1e0]
andps xmm3, xmm5
movaps xmm2, xmm5
andnps xmm2, xmmword [0x1048d3e0]
orps xmm2, xmm3
movaps xmm5, xmmword [esp + 0x140]
mulps xmm5, xmmword [esp + 0x1f0]
movaps xmm3, xmmword [esp + 0x1c0]
subps xmm5, xmm3
mulps xmm5, xmm4
addps xmm5, xmm3
addps xmm5, xmm1
minps xmm2, xmm5
cmpltps xmm5, xmm0
andps xmm0, xmm5
andnps xmm5, xmm2
movsd xmm1, qword [esi + 0x14]
orps xmm5, xmm0
movsd xmm0, qword [esi + 0xc]
addps xmm1, xmm0
subps xmm0, xmm5
mulps xmm0, xmm4
addps xmm0, xmm5
movaps xmmword [esp + 0x80], xmm0
subps xmm5, xmm1
mulps xmm5, xmm4
addps xmm5, xmm1
subps xmm5, xmm0
movaps xmmword [esp + 0x140], xmm5
movlps qword [esp + 0x40], xmm5
lea ecx, [esp + 0x100]
mov edx, esi
lea eax, [esp + 0x40]
push eax
call fcn.100a8c20
movaps xmm4, xmmword [esp + 0x84]
add esp, 4
movsd xmm6, qword [esp + 0x100]
movaps xmm0, xmm6
subps xmm0, xmmword [esp + 0x140]
andps xmm0, xmmword [esp + 0xa0]
subps xmm4, xmm0
movzx ecx, byte [esp + 0xf0]
movzx edx, byte [esp + 0xf8]
test ebx, ebx
je 0x100a232d
test cl, cl
jne 0x100a232d
test dl, dl
je 0x100a2420
jmp 0x100a232d
cmp byte [esp + 0x9f], 0
je 0x100a2c4b
movaps xmm1, xmmword [0x1048d500]
movaps xmm0, xmmword [esp + 0x1b0]
unpcklps xmm1, xmm0
movaps xmmword [esp + 0x190], xmm1
movaps xmm1, xmmword [0x1048d510]
unpcklps xmm1, xmm0
movaps xmmword [esp + 0x200], xmm1
movaps xmm1, xmmword [0x1048d520]
movss xmm1, xmm0
movaps xmmword [esp + 0x1f0], xmm1
xor edi, edi
mov dword [esp + 0x1c0], 0xffffffff
mov dword [esp + 0x140], 0x1048d07c
jmp 0x100a29f4
cmp edi, 2
mov ecx, 0
adc ecx, 3
mov dword [edx + 0x1e90], ecx
test al, al
je 0x100a29e2
movsd xmm3, qword [esi + 0xc]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
xor eax, eax
movzx ecx, byte [esp + 0x170]
mov al, cl
movss xmm0, dword [edx + eax*4 + 0xe4]
subss xmm0, dword [edx + eax*4 + 0x1c18]
addss xmm0, dword [0x1048d4e0]
movss dword [esp + eax*4 + 0xf8], xmm0
xor eax, eax
cmp edi, 1
sete al
movd xmm2, eax
xor eax, eax
test edi, edi
sete al
movd xmm0, edi
pshufd xmm0, xmm0, 0x50
pcmpeqd xmm0, xmmword [0x1048d540]
pshufd xmm1, xmm0, 0x50
movss xmm0, xmm2
pslld xmm0, 0x1f
psrad xmm0, 0x1f
movdqa xmm2, xmmword [esp + 0x180]
pand xmm2, xmm0
pandn xmm0, xmmword [0x1048d4f0]
por xmm0, xmm2
movd xmm2, eax
movss xmm1, xmm2
pslld xmm1, 0x1f
psrad xmm1, 0x1f
movdqa xmm2, xmmword [esp + 0x1e0]
pand xmm2, xmm1
pandn xmm1, xmmword [0x1048d3e0]
por xmm1, xmm2
movsd xmm2, qword [esp + 0xf8]
minps xmm1, xmm2
cmpltps xmm2, xmm0
andps xmm0, xmm2
andnps xmm2, xmm1
orps xmm2, xmm0
mov eax, dword [esp + 0x140]
movsd xmm1, qword [eax - 8]
movsd xmm0, qword [eax]
minps xmm1, xmm0
movaps xmmword [esp + 0xa0], xmm1
movsd xmm0, qword [esi + 0x14]
addps xmm0, xmm3
subps xmm3, xmm2
mulps xmm3, xmm1
addps xmm3, xmm2
movaps xmmword [esp + 0x80], xmm3
subps xmm2, xmm0
mulps xmm2, xmm1
addps xmm2, xmm0
subps xmm2, xmm3
movaps xmmword [esp + 0x170], xmm2
movlps qword [esp + 0x40], xmm2
lea ecx, [esp + 0x100]
mov edx, esi
lea eax, [esp + 0x40]
push eax
call fcn.100a8c20
movaps xmm4, xmmword [esp + 0x84]
mov edx, dword [esp + 0x60]
add esp, 4
movaps xmm1, xmmword [esp + 0xa0]
cmpeqps xmm1, xmmword [0x103972c0]
movsd xmm6, qword [esp + 0x100]
movaps xmm0, xmm6
subps xmm0, xmmword [esp + 0x170]
andps xmm0, xmm1
subps xmm4, xmm0
mov dword [esp + 0x1c0], edi
inc edi
add dword [esp + 0x140], 0x1c
cmp edi, 4
je 0x100a2c5a
cmp edi, 2
setae al
cmp edi, 3
mov byte [esp + 0x170], al
ja 0x100a2a50
movsd xmm0, qword [esi + 0xc]
movsd xmm1, qword [esi + 0x14]
addps xmm1, xmm0
jmp dword [edi*4 + 0x1048d680]
xorps xmm0, xmm0
movaps xmmword [esp + 0x10], xmm0
jmp 0x100a2b05
lea edx, [edi + 4]
mov esi, edx
shr esi, 8
mov ecx, edx
mov ebx, dword [esp + 8]
mov eax, dword [ebx + 0xc8]
mov ebx, dword [ebx + 0xd0]
mov ebx, dword [ebx + eax*4 - 4]
mov eax, edx
not ebx
xor edx, ebx
shr ebx, 8
movzx edx, dl
xor ebx, dword [edx*4 + 0x1048cb9c]
mov edx, ebx
xor ebx, esi
shr ecx, 0x10
shr edx, 8
movzx esi, bl
xor edx, dword [esi*4 + 0x1048cb9c]
mov ebx, edx
xor edx, ecx
shr eax, 0x18
shr ebx, 8
movzx ecx, dl
xor ebx, dword [ecx*4 + 0x1048cb9c]
movzx ecx, bl
xor ecx, eax
mov eax, ebx
shr eax, 8
xor eax, dword [ecx*4 + 0x1048cb9c]
not eax
mov ecx, dword [0x1058eba8]
cmp dword [ecx + 0x1c2c], eax
jne 0x100a2b86
mov byte [ecx + 0x1c30], 1
movaps xmmword [esp + 0xa0], xmm6
movaps xmmword [esp + 0x80], xmm4
cmp dword [ecx + 0x1bf0], eax
jne 0x100a2ba4
mov dword [ecx + 0x1bf4], eax
push 0x800
lea ecx, [esp + 0x16c]
push ecx
lea ecx, [esp + 0xf8]
push ecx
push eax
lea eax, [esp + 0x20]
push eax
call fcn.100cf390
add esp, 0x14
cmp byte [esp + 0xf0], 0
mov esi, dword [esp + 8]
je 0x100a2c13
mov edx, dword [esp + 0x5c]
movss xmm0, dword [edx + 0x1be8]
ucomiss xmm0, dword [0x1048d534]
movzx eax, byte [esp + 0x168]
movaps xmm4, xmmword [esp + 0x80]
movaps xmm6, xmmword [esp + 0xa0]
ja 0x100a284d
test al, al
je 0x100a29e2
jmp 0x100a284d
cmp byte [esp + 0x168], 0
mov edx, dword [esp + 0x5c]
movaps xmm4, xmmword [esp + 0x80]
movaps xmm6, xmmword [esp + 0xa0]
je 0x100a29e2
cmp edi, 2
mov eax, 0
adc eax, 3
mov dword [edx + 0x1e90], eax
jmp 0x100a2866
mov dword [esp + 0x1c0], 0xffffffff
mov edx, dword [esp + 0x5c]
mov eax, dword [0x1058eba8]
mov eax, dword [eax + 0x1bbc]
dec dword [eax + 0xc8]
mov dword [esi + 0x120], 0
mov eax, dword [edx + 0x1e58]
test eax, eax
je 0x100a2dd1
cmp dword [eax + 0x2f0], esi
jne 0x100a2dd1
mov eax, dword [edx + 0x1d80]
cmp eax, 3
movaps xmmword [esp + 0x80], xmm4
je 0x100a2cbf
xorps xmm0, xmm0
cmp eax, 2
jne 0x100a2cff
cmp byte [edx + 0xfd], 0
je 0x100a2cff
sub esp, 0x14
movaps xmm0, xmmword [0x1048d560]
jmp 0x100a2cc9
sub esp, 0x14
movaps xmm0, xmmword [0x1048d550]
movups xmmword [esp + 4], xmm0
lea eax, [esp + 0x24]
mov dword [esp], eax
movaps xmmword [esp + 0xb4], xmm6
call fcn.100aab80
movaps xmm6, xmmword [esp + 0xb4]
movaps xmm4, xmmword [esp + 0x94]
mov edx, dword [esp + 0x70]
add esp, 0x14
movsd xmm0, qword [esp + 0x10]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x100a2d1b
jp 0x100a2d1b
movaps xmm2, xmm0
shufps xmm2, xmm0, 0x55
ucomiss xmm2, xmm1
jne 0x100a2d1b
jnp 0x100a2dd1
movss xmm1, dword [edx + 0x18]
movss xmm2, dword [edx + 0xa8]
mulss xmm1, dword [0x1048d570]
minss xmm2, dword [edx + 0xac]
mulss xmm2, xmm1
cvttps2dq xmm1, xmm2
cvtdq2ps xmm1, xmm1
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
movsd xmm1, qword [esi + 0xc]
movsd xmm2, qword [esi + 0x14]
movaps xmm3, xmmword [esp + 0x180]
subps xmm3, xmm1
subps xmm3, xmm2
movaps xmm1, xmm3
cmpleps xmm1, xmm0
andps xmm0, xmm1
andnps xmm1, xmm3
orps xmm1, xmm0
movaps xmmword [esp + 0xa0], xmm1
mov byte [edx + 0x1e6c], 0
mov byte [edx + 0x1da3], 1
push 0x3f800000
push 0x20
call fcn.10093e90
add esp, 8
mov dword [esp + 0x210], eax
movsd xmm0, qword [esi + 0x1c]
addps xmm0, xmmword [esp + 0xa0]
movlps qword [esp + 0x40], xmm0
lea ecx, [esp + 0x10]
mov edx, esi
lea eax, [esp + 0x40]
push eax
call fcn.100a8c20
movaps xmm4, xmmword [esp + 0x84]
add esp, 4
movsd xmm6, qword [esp + 0x10]
ucomiss xmm6, dword [0x1048d2e0]
jne 0x100a2ddc
jnp 0x100a2e04
movlps qword [esi + 0x1c], xmm6
test byte [esi + 9], 1
jne 0x100a2e04
mov eax, dword [0x1058eba8]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x2f30]
jb 0x100a2e04
movss xmm0, dword [eax + 0x1c]
movss dword [eax + 0x2f30], xmm0
ucomiss xmm4, dword [0x1048d2e0]
jne 0x100a2e0f
jnp 0x100a2e3e
cvttps2dq xmm0, xmm4
cvtdq2ps xmm0, xmm0
movlps qword [esi + 0xc], xmm0
test byte [esi + 9], 1
jne 0x100a2e3e
mov eax, dword [0x1058eba8]
xorps xmm0, xmm0
ucomiss xmm0, dword [eax + 0x2f30]
jb 0x100a2e3e
movss xmm0, dword [eax + 0x1c]
movss dword [eax + 0x2f30], xmm0
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x18], ecx
test byte [esp + 0x154], 1
mov edx, dword [esp + 0xd0]
movzx edx, dl
mov ecx, 1
cmovne edx, ecx
mov dword [esi + 0x14], eax
mov ebx, dword [esp + 0x110]
movzx ebx, bl
cmovne ebx, ecx
mov eax, dword [esp + 0x1c0]
mov byte [esi + 0x98], al
lea edi, [esi + 0x98]
cmp byte [esi + 0x91], 0
je 0x100a2e98
mov dword [esp + 0x5c], edi
mov edi, esi
jmp 0x1009f0c9
mov eax, dword [esp + 0xc]
mov ecx, edx
mov edx, ebx
mov ebx, dword [esp + 4]
jmp 0x1009f115