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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x648
mov dword [esp + 0x204], edx
mov dword [esp + 0x3c], ecx
mov eax, dword [0x101d9748]
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
add ecx, 0x1518
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x3c]
call fcn.10092d90
mov dword [esp + 4], eax
cmp dword [esp + 4], 0
jne 0x100975d9
mov byte [esp + 0x2e], 1
jmp 0x100975de
mov byte [esp + 0x2e], 0
mov dl, byte [esp + 0x2e]
mov byte [esp + 0x10], dl
movzx eax, byte [esp + 0x10]
test eax, eax
je 0x100975ff
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x3c]
call fcn.10092f30
mov dword [esp + 4], eax
mov ecx, dword [ebp + 8]
and ecx, 0xc0200
cmp ecx, 0xc0200
jne 0x10097619
mov edx, dword [ebp + 8]
or edx, 6
mov dword [ebp + 8], edx
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1b48]
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x25c]
cmp ecx, dword [esp + 0x5c]
je 0x1009763e
mov byte [esp + 0x2f], 1
jmp 0x10097643
mov byte [esp + 0x2f], 0
mov dl, byte [esp + 0x2f]
mov byte [esp + 0x11], dl
mov eax, dword [esp + 8]
cmp dword [eax + 0x1b88], 0
jne 0x10097674
mov ecx, dword [esp + 8]
movzx edx, byte [ecx + 0x1b55]
test edx, edx
je 0x10097674
mov dword [esp + 0x21c], 1
jmp 0x1009767f
mov dword [esp + 0x21c], 0
mov eax, dword [esp + 4]
mov cl, byte [esp + 0x21c]
mov byte [eax + 0x92], cl
mov edx, dword [esp + 0x5c]
sub edx, 1
mov eax, dword [esp + 4]
cmp dword [eax + 0x25c], edx
jge 0x100976ad
mov dword [esp + 0x6c], 1
jmp 0x100976b5
mov dword [esp + 0x6c], 0
mov cl, byte [esp + 0x6c]
mov byte [esp + 0xe], cl
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa9]
test eax, eax
jle 0x100976d3
mov byte [esp + 0x30], 1
jmp 0x100976d8
mov byte [esp + 0x30], 0
mov cl, byte [esp + 0x30]
mov byte [esp + 0x25], cl
mov edx, dword [ebp + 8]
and edx, 0x4000000
je 0x10097775
mov eax, dword [esp + 8]
add eax, 0x1ce4
mov dword [esp + 0x384], eax
mov ecx, dword [esp + 8]
imul edx, dword [ecx + 0x1cf0], 0x24
mov eax, dword [esp + 0x384]
add edx, dword [eax + 8]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x74]
mov eax, dword [ecx + 0x9c]
cmp eax, dword [edx]
je 0x10097734
mov dword [esp + 0x70], 1
jmp 0x1009773c
mov dword [esp + 0x70], 0
movzx ecx, byte [esp + 0xe]
or ecx, dword [esp + 0x70]
mov byte [esp + 0xe], cl
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 4]
cmp eax, dword [edx + 4]
je 0x10097760
mov dword [esp + 0x78], 1
jmp 0x10097768
mov dword [esp + 0x78], 0
movzx ecx, byte [esp + 0xe]
or ecx, dword [esp + 0x78]
mov byte [esp + 0xe], cl
movzx edx, byte [esp + 0xe]
test edx, edx
jne 0x10097791
movzx eax, byte [esp + 0x25]
test eax, eax
jne 0x10097791
mov dword [esp + 0x7c], 0
jmp 0x10097799
mov dword [esp + 0x7c], 1
mov ecx, dword [esp + 4]
mov dl, byte [esp + 0x7c]
mov byte [ecx + 0x90], dl
mov eax, dword [esp + 4]
movzx ecx, byte [eax + 0x90]
test ecx, ecx
je 0x100977c6
push 1
mov edx, 8
mov ecx, dword [esp + 8]
call fcn.10092c30
movzx edx, byte [esp + 0x11]
test edx, edx
je 0x10097845
mov eax, dword [esp + 4]
mov ecx, dword [ebp + 8]
mov dword [eax + 8], ecx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x5c]
mov dword [edx + 0x25c], eax
mov ecx, dword [esp + 8]
cvtsd2ss xmm0, qword [ecx + 0x1b40]
mov edx, dword [esp + 4]
movss dword [edx + 0x260], xmm0
xor eax, eax
mov ecx, dword [esp + 4]
mov word [ecx + 0x98], ax
mov edx, dword [esp + 8]
mov ax, word [edx + 0x1ba0]
mov word [esp + 0x5a], ax
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1ba0]
add edx, 1
mov eax, dword [esp + 8]
mov dword [eax + 0x1ba0], edx
mov ecx, dword [esp + 4]
mov dx, word [esp + 0x5a]
mov word [ecx + 0x9a], dx
jmp 0x1009784f
mov eax, dword [esp + 4]
mov ecx, dword [eax + 8]
mov dword [ebp + 8], ecx
mov edx, dword [esp + 8]
cmp dword [edx + 0x1b88], 0
jne 0x10097869
mov dword [esp + 0x80], 1
jmp 0x10097874
mov dword [esp + 0x80], 0
movzx eax, byte [esp + 0x80]
test eax, eax
je 0x1009788d
mov dword [esp + 0x88], 0
jmp 0x100978bc
mov ecx, dword [esp + 8]
add ecx, 0x1b88
mov dword [esp + 0x84], ecx
mov edx, dword [esp + 0x84]
mov eax, dword [edx]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax*4 - 4]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x388], ecx
movzx edx, byte [esp + 0x11]
test edx, edx
je 0x10097908
mov eax, dword [ebp + 8]
and eax, 0x5000000
je 0x100978ed
mov ecx, dword [esp + 0x388]
mov dword [esp + 0x8c], ecx
jmp 0x100978f8
mov dword [esp + 0x8c], 0
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x90], edx
jmp 0x10097919
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x31c]
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 4]
cmp dword [eax + 0xc0], 0
jne 0x10097956
mov ecx, dword [esp + 4]
add ecx, 0xc0
mov dword [esp + 0x38c], ecx
mov edx, dword [esp + 4]
add edx, 4
push edx
mov ecx, dword [esp + 0x390]
call fcn.100ae2b0
mov eax, dword [esp + 8]
add eax, 0x1b88
mov dword [esp + 0x554], eax
lea ecx, [esp + 4]
push ecx
mov ecx, dword [esp + 0x558]
call fcn.100ae2b0
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
mov dword [edx + 0x1ba4], eax
mov ecx, dword [esp + 4]
add ecx, 0x1d4
call fcn.1009cc50
mov ecx, dword [esp + 8]
mov dword [ecx + 0x1ba4], 0
mov edx, dword [ebp + 8]
and edx, 0x4000000
je 0x10097a12
mov eax, dword [esp + 8]
add eax, 0x1ce4
mov dword [esp + 0x558], eax
mov ecx, dword [esp + 8]
imul edx, dword [ecx + 0x1cf0], 0x24
mov eax, dword [esp + 0x558]
add edx, dword [eax + 8]
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 4]
mov dword [ecx + 4], edx
mov eax, dword [esp + 8]
add eax, 0x1cf0
mov dword [esp + 0x55c], eax
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x560]
call fcn.100adef0
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov dword [edx + 0x9c], ecx
movzx edx, byte [esp + 0x11]
test edx, edx
je 0x10097a2c
mov eax, dword [esp + 0x1c]
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 8]
call fcn.100974c0
mov byte [esp + 0xf], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 0
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1c28]
and edx, 1
je 0x10097b6b
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xac]
shl ecx, 0x18
sar ecx, 0x18
mov edx, dword [esp + 8]
and ecx, dword [edx + 0x1c2c]
je 0x10097a77
mov dword [esp + 0x94], 1
jmp 0x10097a82
mov dword [esp + 0x94], 0
mov al, byte [esp + 0x94]
mov byte [esp + 0xf], al
movzx ecx, byte [esp + 0xf]
test ecx, ecx
je 0x10097b4d
mov edx, dword [esp + 8]
add edx, 0x1c40
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [ecx + 4]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x48]
movss xmm1, dword [edx]
mulss xmm1, dword [eax]
addss xmm1, xmm0
comiss xmm1, dword [0x101ca188]
jbe 0x10097b4d
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1c38]
mov eax, dword [ecx + 0x1c3c]
mov ecx, dword [esp + 4]
mov dword [ecx + 0xb0], edx
mov dword [ecx + 0xb4], eax
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x1c40]
mov ecx, dword [edx + 0x1c44]
mov edx, dword [esp + 4]
mov dword [edx + 0xb8], eax
mov dword [edx + 0xbc], ecx
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xac]
shl ecx, 0x18
sar ecx, 0x18
and ecx, 0xfffffff1
and ecx, 0xff
mov edx, dword [esp + 4]
mov eax, dword [edx + 0xac]
and eax, 0xffffff00
or eax, ecx
mov ecx, dword [esp + 4]
mov dword [ecx + 0xac], eax
jmp 0x10097b6b
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x1c2c]
push eax
mov edx, dword [esp + 0xc]
add edx, 0x1c38
mov ecx, dword [esp + 8]
call fcn.1009bec0
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1c28]
and edx, 2
je 0x10097c44
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xac]
shl ecx, 0x10
sar ecx, 0x18
mov edx, dword [esp + 8]
and ecx, dword [edx + 0x1c30]
je 0x10097bbc
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x1c48]
comiss xmm0, dword [0x101ca16c]
jbe 0x10097bbc
mov dword [esp + 0x98], 1
jmp 0x10097bc7
mov dword [esp + 0x98], 0
mov cl, byte [esp + 0x98]
mov byte [esp + 0x12], cl
mov edx, dword [esp + 4]
mov eax, dword [edx + 0xac]
shl eax, 0x10
sar eax, 0x18
mov ecx, dword [esp + 8]
and eax, dword [ecx + 0x1c30]
je 0x10097c10
mov edx, dword [esp + 8]
movss xmm0, dword [edx + 0x1c4c]
comiss xmm0, dword [0x101ca16c]
jbe 0x10097c10
mov dword [esp + 0x9c], 1
jmp 0x10097c1b
mov dword [esp + 0x9c], 0
mov al, byte [esp + 0x9c]
mov byte [esp + 0x13], al
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1c30]
push edx
mov edx, dword [esp + 0xc]
add edx, 0x1c48
mov ecx, dword [esp + 8]
call fcn.1009c160
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1c28]
and ecx, 0x80
je 0x10097cba
mov edx, dword [esp + 8]
movss xmm0, dword [edx + 0x1c58]
comiss xmm0, dword [0x101ca16c]
jb 0x10097c88
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1c58]
mov dword [eax + 0x68], edx
mov eax, dword [esp + 4]
xorps xmm0, xmm0
movss dword [eax + 0x70], xmm0
mov ecx, dword [esp + 8]
movss xmm0, dword [ecx + 0x1c5c]
comiss xmm0, dword [0x101ca16c]
jb 0x10097cba
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1c5c]
mov dword [edx + 0x6c], ecx
mov edx, dword [esp + 4]
xorps xmm0, xmm0
movss dword [edx + 0x74], xmm0
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1c28]
and ecx, 4
je 0x10097ce5
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x1c50]
mov ecx, dword [edx + 0x1c54]
mov edx, dword [esp + 4]
mov dword [edx + 0x34], eax
mov dword [edx + 0x38], ecx
jmp 0x10097d3a
movzx eax, byte [esp + 0x11]
test eax, eax
je 0x10097d3a
xorps xmm0, xmm0
movss dword [esp + 0x390], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x394], xmm0
mov ecx, dword [esp + 0x390]
mov edx, dword [esp + 0x394]
mov dword [esp + 0x398], ecx
mov dword [esp + 0x39c], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x398]
mov edx, dword [esp + 0x39c]
mov dword [eax + 0x34], ecx
mov dword [eax + 0x38], edx
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1c28]
and ecx, 8
je 0x10097d67
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x1c34]
push eax
mov ecx, dword [esp + 0xc]
mov dl, byte [ecx + 0x1c60]
mov ecx, dword [esp + 8]
call fcn.1009c280
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x1c28]
and eax, 0x20
je 0x10097d7f
mov ecx, dword [esp + 4]
call fcn.1009b410
mov ecx, dword [esp + 4]
movzx edx, byte [ecx + 0x90]
test edx, edx
je 0x10097d9e
push 0
mov edx, 8
mov ecx, dword [esp + 8]
call fcn.10092c30
movzx eax, byte [esp + 0x11]
test eax, eax
je 0x1009ae13
mov ecx, dword [ebp + 8]
and ecx, 0x1000000
je 0x10097dc8
mov edx, dword [ebp + 8]
and edx, 0x2000000
je 0x10097dc8
mov byte [esp + 0x31], 1
jmp 0x10097dcd
mov byte [esp + 0x31], 0
mov al, byte [esp + 0x31]
mov byte [esp + 0x16], al
mov ecx, dword [esp + 4]
mov byte [ecx + 0x8a], 1
cmp dword [esp + 0x204], 0
je 0x10097df7
mov dword [esp + 0xa0], 1
jmp 0x10097e02
mov dword [esp + 0xa0], 0
mov edx, dword [esp + 4]
mov al, byte [esp + 0xa0]
mov byte [edx + 0x93], al
movss xmm0, dword [0x101ca6d0]
movss dword [esp + 0x5b8], xmm0
movss xmm0, dword [0x101ca6d0]
movss dword [esp + 0x5bc], xmm0
movss xmm0, dword [0x101ca62c]
movss dword [esp + 0x5c0], xmm0
movss xmm0, dword [0x101ca62c]
movss dword [esp + 0x5c4], xmm0
lea ecx, [esp + 0x5b8]
push ecx
lea ecx, [esp + 0x5cc]
call fcn.10083500
mov edx, dword [esp + 4]
add edx, 0x234
mov eax, dword [esp + 0x5c8]
mov dword [edx], eax
mov ecx, dword [esp + 0x5cc]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x5d0]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x5d4]
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 4]
add edx, 0xc0
mov dword [esp + 0x260], edx
push 1
mov ecx, dword [esp + 0x264]
call fcn.100794f0
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x288]
call fcn.100d6e70
mov ecx, dword [esp + 4]
mov dword [ecx + 0x19c], 0xffffffff
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x360]
test eax, eax
je 0x10097ef0
mov ecx, dword [esp + 4]
call fcn.1008c260
mov byte [esp + 0x23], 0
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x1e18], 0
je 0x10097f15
mov edx, dword [esp + 4]
mov eax, dword [edx + 8]
and eax, 0x80000
jne 0x10097f15
mov byte [esp + 0x23], 1
movzx ecx, byte [esp + 0x23]
test ecx, ecx
je 0x10097ff7
movzx edx, byte [esp + 0x10]
test edx, edx
jne 0x10097ff7
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x4c]
mov cl, byte [eax]
mov byte [esp + 0x34], cl
mov edx, dword [esp + 0x54]
cmp cl, byte [edx]
jne 0x10097f8c
cmp byte [esp + 0x34], 0
je 0x10097f7f
mov eax, dword [esp + 0x4c]
mov cl, byte [eax + 1]
mov byte [esp + 0x35], cl
mov edx, dword [esp + 0x54]
cmp cl, byte [edx + 1]
jne 0x10097f8c
add dword [esp + 0x4c], 2
add dword [esp + 0x54], 2
cmp byte [esp + 0x35], 0
jne 0x10097f41
mov dword [esp + 0xa4], 0
jmp 0x10097f98
sbb eax, eax
or eax, 1
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x264], ecx
cmp dword [esp + 0x264], 0
je 0x10097ff7
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x4c]
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x3c]
push ecx
lea edx, [esp + 0xac]
mov eax, dword [esp + 8]
mov ecx, dword [eax]
call fcn.10086b90
mov dword [esp + 0x268], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x268]
mov dword [ecx], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xa8]
mov dword [eax + 0x4c], ecx
mov edx, dword [esp + 4]
add edx, 0x2c
push edx
mov edx, dword [esp + 8]
add edx, 0x24
mov ecx, dword [esp + 8]
call fcn.10093530
mov eax, dword [esp + 4]
movsx ecx, byte [eax + 0xa8]
test ecx, ecx
jle 0x10098034
mov edx, dword [esp + 4]
mov al, byte [edx + 0xa8]
sub al, 1
mov ecx, dword [esp + 4]
mov byte [ecx + 0xa8], al
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa9]
test eax, eax
jle 0x1009805a
mov ecx, dword [esp + 4]
mov dl, byte [ecx + 0xa9]
sub dl, 1
mov eax, dword [esp + 4]
mov byte [eax + 0xa9], dl
mov ecx, dword [esp + 4]
movsx edx, byte [ecx + 0xaa]
test edx, edx
jle 0x10098080
mov eax, dword [esp + 4]
mov cl, byte [eax + 0xaa]
sub cl, 1
mov edx, dword [esp + 4]
mov byte [edx + 0xaa], cl
movzx eax, byte [esp + 0x10]
test eax, eax
je 0x100980a6
movzx ecx, byte [esp + 0x12]
test ecx, ecx
je 0x1009809b
movzx edx, byte [esp + 0x13]
test edx, edx
jne 0x100980a6
mov eax, dword [esp + 4]
mov byte [eax + 0xa9], 1
movzx ecx, byte [esp + 0xe]
test ecx, ecx
je 0x1009817b
mov edx, dword [ebp + 8]
and edx, 0x6000000
je 0x1009817b
mov eax, dword [esp + 4]
mov byte [eax + 0xa9], 1
mov ecx, dword [ebp + 8]
and ecx, 0x40
je 0x1009817b
movzx edx, byte [esp + 0x12]
test edx, edx
jne 0x100980fa
mov eax, dword [esp + 4]
xorps xmm0, xmm0
movss dword [eax + 0x1c], xmm0
mov ecx, dword [esp + 4]
xorps xmm0, xmm0
movss dword [ecx + 0x14], xmm0
movzx edx, byte [esp + 0x13]
test edx, edx
jne 0x1009811b
mov eax, dword [esp + 4]
xorps xmm0, xmm0
movss dword [eax + 0x20], xmm0
mov ecx, dword [esp + 4]
xorps xmm0, xmm0
movss dword [ecx + 0x18], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x3a0], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x3a4], xmm0
mov edx, dword [esp + 0x3a0]
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x3a8], edx
mov dword [esp + 0x3ac], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x3a8]
mov eax, dword [esp + 0x3ac]
mov dword [ecx + 0x2c], edx
mov dword [ecx + 0x30], eax
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x30]
mov ecx, dword [esp + 4]
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x28], eax
mov ecx, dword [esp + 4]
call fcn.1008bf80
mov edx, dword [ebp + 8]
and edx, 0x1000000
je 0x1009819f
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x2c]
mov dword [eax + 0x48], edx
jmp 0x100981ec
mov eax, dword [ebp + 8]
and eax, 0x6000000
je 0x100981c8
mov ecx, dword [ebp + 8]
and ecx, 0x8000000
jne 0x100981c8
mov edx, dword [esp + 0x18]
movss xmm0, dword [edx + 0x34]
movss dword [esp + 0xac], xmm0
jmp 0x100981da
mov eax, dword [esp + 0x18]
movss xmm0, dword [eax + 0x10]
movss dword [esp + 0xac], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [esp + 0xac]
movss dword [ecx + 0x48], xmm0
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [esp + 4]
mov dword [edx + 0x3c], eax
mov dword [edx + 0x40], ecx
mov eax, dword [ebp + 8]
and eax, 0x1000000
je 0x100982af
mov ecx, dword [ebp + 8]
and ecx, 0x4010000
jne 0x100982af
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x48]
ucomiss xmm0, dword [0x101ca16c]
lahf
test ah, 0x44
jp 0x100982af
mov eax, dword [ebp + 8]
and eax, 0x400
je 0x10098251
mov ecx, dword [esp + 0x18]
movss xmm0, dword [ecx + 8]
movss dword [esp + 0xb0], xmm0
jmp 0x1009825d
xorps xmm0, xmm0
movss dword [esp + 0xb0], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x3b0], xmm0
movss xmm0, dword [esp + 0xb0]
movss dword [esp + 0x3b4], xmm0
mov edx, dword [esp + 0x3b0]
mov eax, dword [esp + 0x3b4]
mov dword [esp + 0x3b8], edx
mov dword [esp + 0x3bc], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x3b8]
mov eax, dword [esp + 0x3bc]
mov dword [ecx + 0x3c], edx
mov dword [ecx + 0x40], eax
mov ecx, dword [esp + 8]
movss xmm0, dword [ecx + 0x1c80]
movss dword [esp + 0xc4], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x3c]
movss dword [esp + 0xb4], xmm0
mov eax, dword [esp + 0x18]
movss xmm0, dword [eax + 0x48]
movss dword [esp + 0xb8], xmm0
movss xmm0, dword [esp + 0xb4]
comiss xmm0, dword [esp + 0xb8]
jb 0x1009830f
movss xmm0, dword [esp + 0xb4]
movss dword [esp + 0xbc], xmm0
jmp 0x10098321
movss xmm0, dword [esp + 0xb8]
movss dword [esp + 0xbc], xmm0
movss xmm0, dword [esp + 0xbc]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esp + 0xc0]
comiss xmm0, dword [esp + 0xc4]
jb 0x1009835a
movss xmm0, dword [esp + 0xc0]
movss dword [esp + 0xc8], xmm0
jmp 0x1009836c
movss xmm0, dword [esp + 0xc4]
movss dword [esp + 0xc8], xmm0
movss xmm0, dword [esp + 0xc8]
movss dword [esp + 0x26c], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [esp + 0x26c]
movss dword [ecx + 0x154], xmm0
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1c84]
mov dword [edx + 0x158], ecx
mov edx, dword [ebp + 8]
and edx, 1
jne 0x1009848b
mov eax, dword [ebp + 8]
and eax, 0x20
jne 0x1009848b
lea ecx, [esp + 0x608]
push ecx
mov ecx, dword [esp + 8]
call fcn.10085520
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x1ba8]
cmp eax, dword [esp + 4]
jne 0x10098439
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x1bc4], 0
jne 0x10098439
mov edx, dword [esp + 8]
cmp dword [edx + 0x1bc8], 0
jne 0x10098439
push 1
lea edx, [esp + 0x614]
lea ecx, [esp + 0x60c]
call fcn.10091730
movzx eax, al
test eax, eax
je 0x10098439
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [esp + 8]
movzx ecx, byte [eax + edx + 0x3dd]
test ecx, ecx
je 0x10098439
mov edx, dword [esp + 4]
mov byte [edx + 0x8e], 1
mov eax, dword [esp + 4]
movzx ecx, byte [eax + 0x8e]
test ecx, ecx
je 0x10098489
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x8d]
test eax, eax
jne 0x10098464
mov dword [esp + 0xcc], 1
jmp 0x1009846f
mov dword [esp + 0xcc], 0
mov ecx, dword [esp + 4]
mov dl, byte [esp + 0xcc]
mov byte [ecx + 0x8d], dl
mov ecx, dword [esp + 4]
call fcn.100a7790
jmp 0x10098496
mov eax, dword [esp + 4]
mov byte [eax + 0x8d], 0
mov ecx, dword [esp + 4]
mov byte [ecx + 0x8e], 0
mov edx, dword [esp + 4]
add edx, 0x2c
mov ecx, dword [esp + 4]
call fcn.100937a0
movss dword [esp + 0x3c4], xmm1
movss dword [esp + 0x3c0], xmm0
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov cl, byte [esp + 0x10]
mov byte [esp + 0x15], cl
mov dl, byte [esp + 0x10]
mov byte [esp + 0x14], dl
mov eax, dword [ebp + 8]
and eax, 0x40
je 0x1009853f
mov ecx, dword [esp + 4]
movzx edx, byte [ecx + 0x8d]
test edx, edx
jne 0x1009853f
movzx eax, byte [esp + 0x12]
test eax, eax
jne 0x1009851d
mov ecx, dword [esp + 4]
movss xmm0, dword [esp + 0x40]
movss dword [ecx + 0x1c], xmm0
mov byte [esp + 0x15], 1
movzx edx, byte [esp + 0x13]
test edx, edx
jne 0x1009853a
mov eax, dword [esp + 4]
movss xmm0, dword [esp + 0x44]
movss dword [eax + 0x20], xmm0
mov byte [esp + 0x14], 1
jmp 0x100986d5
mov ecx, dword [esp + 4]
movsx edx, byte [ecx + 0xa0]
test edx, edx
jg 0x10098561
mov eax, dword [esp + 4]
movsx ecx, byte [eax + 0xa1]
test ecx, ecx
jle 0x100986d5
movzx edx, byte [esp + 0x12]
test edx, edx
jne 0x1009860f
mov eax, dword [esp + 4]
movsx ecx, byte [eax + 0xa0]
test ecx, ecx
jle 0x1009860f
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0xa3]
test eax, eax
je 0x100985e9
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1c]
movss dword [esp + 0xd0], xmm0
movss xmm0, dword [esp + 0xd0]
comiss xmm0, dword [esp + 0x40]
jb 0x100985c6
movss xmm0, dword [esp + 0xd0]
movss dword [esp + 0xd4], xmm0
jmp 0x100985d5
movss xmm0, dword [esp + 0x40]
movss dword [esp + 0xd4], xmm0
movss xmm0, dword [esp + 0xd4]
movss dword [esp + 0xd8], xmm0
jmp 0x100985f8
movss xmm0, dword [esp + 0x40]
movss dword [esp + 0xd8], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0xd8]
movss dword [edx + 0x1c], xmm0
mov byte [esp + 0x15], 1
movzx eax, byte [esp + 0x13]
test eax, eax
jne 0x100986bd
mov ecx, dword [esp + 4]
movsx edx, byte [ecx + 0xa1]
test edx, edx
jle 0x100986bd
mov eax, dword [esp + 4]
movzx ecx, byte [eax + 0xa3]
test ecx, ecx
je 0x10098697
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x20]
movss dword [esp + 0xdc], xmm0
movss xmm0, dword [esp + 0xdc]
comiss xmm0, dword [esp + 0x44]
jb 0x10098674
movss xmm0, dword [esp + 0xdc]
movss dword [esp + 0xe0], xmm0
jmp 0x10098683
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0xe0], xmm0
movss xmm0, dword [esp + 0xe0]
movss dword [esp + 0xe4], xmm0
jmp 0x100986a6
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0xe4], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [esp + 0xe4]
movss dword [eax + 0x20], xmm0
mov byte [esp + 0x14], 1
mov ecx, dword [esp + 4]
movzx edx, byte [ecx + 0x8d]
test edx, edx
jne 0x100986d5
mov ecx, dword [esp + 4]
call fcn.100a7790
mov edx, dword [esp + 4]
add edx, 0x1c
mov ecx, dword [esp + 4]
call fcn.100931e0
movss dword [esp + 0x3cc], xmm1
movss dword [esp + 0x3c8], xmm0
mov eax, dword [esp + 0x3c8]
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x3d0], eax
mov dword [esp + 0x3d4], ecx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x3d0]
mov ecx, dword [esp + 0x3d4]
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], ecx
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x8d]
test eax, eax
je 0x1009877a
mov ecx, dword [ebp + 8]
and ecx, 0x1000000
jne 0x1009877a
lea edx, [esp + 0x638]
push edx
mov ecx, dword [esp + 8]
call fcn.10085520
mov dword [esp + 0x270], eax
lea eax, [esp + 0x628]
push eax
mov ecx, dword [esp + 0x274]
call fcn.10083590
mov dword [esp + 0xe8], eax
jmp 0x100987a0
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x570], edx
mov dword [esp + 0x574], eax
lea ecx, [esp + 0x570]
mov dword [esp + 0xe8], ecx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x274], edx
mov eax, dword [esp + 0x274]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 4]
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
mov ecx, dword [esp + 4]
call fcn.10085480
fstp dword [esp + 0x278]
movss xmm0, dword [esp + 0x278]
mov ecx, dword [esp + 4]
movss dword [esp + 0x27c], xmm0
call fcn.100855a0
fstp dword [esp + 0x280]
movss xmm0, dword [esp + 0x27c]
addss xmm0, dword [esp + 0x280]
movss dword [esp + 0x38], xmm0
movzx ecx, byte [esp + 0xe]
test ecx, ecx
je 0x1009889e
mov edx, dword [esp + 4]
mov dword [edx + 0xa4], 0xffffffff
mov eax, dword [ebp + 8]
and eax, 0x4000000
je 0x1009889e
mov ecx, dword [ebp + 8]
and ecx, 0x8000000
jne 0x1009889e
movzx edx, byte [esp + 0xf]
test edx, edx
jne 0x1009889e
mov eax, dword [esp + 8]
add eax, 0x1cf0
mov dword [esp + 0xec], eax
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx]
sub edx, 1
imul eax, edx, 0x24
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + eax + 0x14]
mov edx, dword [edx + eax + 0x18]
mov dword [esp + 0x3d8], ecx
mov dword [esp + 0x3dc], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3d8]
mov edx, dword [esp + 0x3dc]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov eax, dword [ebp + 8]
and eax, 0x1000000
je 0x10098916
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov ax, word [edx + 0x188]
mov word [ecx + 0x98], ax
mov ecx, dword [esp + 0x1c]
add ecx, 0x188
mov dword [esp + 0x284], ecx
lea edx, [esp + 4]
push edx
mov ecx, dword [esp + 0x288]
call fcn.100ae2b0
mov eax, dword [ebp + 8]
and eax, 0x4000000
jne 0x10098916
movzx ecx, byte [esp + 0xf]
test ecx, ecx
jne 0x10098916
movzx edx, byte [esp + 0x16]
test edx, edx
jne 0x10098916
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xcc]
mov edx, dword [eax + 0xd0]
mov eax, dword [esp + 4]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0xb0]
ucomiss xmm0, dword [0x101ca62c]
lahf
test ah, 0x44
jnp 0x10098945
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa9]
test eax, eax
jne 0x10098945
mov byte [esp + 0x24], 1
jmp 0x1009894a
mov byte [esp + 0x24], 0
mov cl, byte [esp + 0x24]
mov byte [esp + 0x36], cl
movzx edx, byte [esp + 0x36]
test edx, edx
je 0x10098ad8
mov eax, dword [esp + 4]
add eax, 0xb8
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 4]
add ecx, 0x14
mov dword [esp + 0xf0], ecx
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
movss xmm0, dword [edx]
mulss xmm0, dword [eax]
movss dword [esp + 0x288], xmm0
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
movss xmm0, dword [ecx + 4]
mulss xmm0, dword [edx + 4]
movss dword [esp + 0x28c], xmm0
movss xmm0, dword [esp + 0x288]
movss dword [esp + 0x3e0], xmm0
movss xmm0, dword [esp + 0x28c]
movss dword [esp + 0x3e4], xmm0
mov eax, dword [esp + 0x3e0]
mov ecx, dword [esp + 0x3e4]
mov dword [esp + 0x3e8], eax
mov dword [esp + 0x3ec], ecx
mov edx, dword [esp + 0x3e8]
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x3f0], edx
mov dword [esp + 0x3f4], eax
mov ecx, dword [esp + 4]
add ecx, 0xb0
mov dword [esp + 0xf8], ecx
mov edx, dword [esp + 0xf8]
movss xmm0, dword [edx]
subss xmm0, dword [esp + 0x3f0]
movss dword [esp + 0x290], xmm0
mov eax, dword [esp + 0xf8]
movss xmm0, dword [eax + 4]
subss xmm0, dword [esp + 0x3f4]
movss dword [esp + 0x294], xmm0
movss xmm0, dword [esp + 0x290]
movss dword [esp + 0x3f8], xmm0
movss xmm0, dword [esp + 0x294]
movss dword [esp + 0x3fc], xmm0
mov ecx, dword [esp + 0x3f8]
mov edx, dword [esp + 0x3fc]
mov dword [esp + 0x400], ecx
mov dword [esp + 0x404], edx
mov eax, dword [esp + 0x400]
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x578], eax
mov dword [esp + 0x57c], ecx
push 0
lea edx, [esp + 0x57c]
mov ecx, dword [esp + 8]
call fcn.1009bec0
jmp 0x10098c11
mov edx, dword [ebp + 8]
and edx, 0x10000000
je 0x10098b37
mov ecx, dword [esp + 4]
call fcn.100a07d0
movss dword [esp + 0x40c], xmm1
movss dword [esp + 0x408], xmm0
mov eax, dword [esp + 0x408]
mov ecx, dword [esp + 0x40c]
mov dword [esp + 0x410], eax
mov dword [esp + 0x414], ecx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x410]
mov ecx, dword [esp + 0x414]
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], ecx
jmp 0x10098c11
mov edx, dword [ebp + 8]
and edx, 0x4000000
je 0x10098ba5
movzx eax, byte [esp + 0xf]
test eax, eax
jne 0x10098ba5
movzx ecx, byte [esp + 0x25]
test ecx, ecx
je 0x10098ba5
mov ecx, dword [esp + 4]
call fcn.100a07d0
movss dword [esp + 0x41c], xmm1
movss dword [esp + 0x418], xmm0
mov edx, dword [esp + 0x418]
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x420], edx
mov dword [esp + 0x424], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x420]
mov eax, dword [esp + 0x424]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], eax
jmp 0x10098c11
mov ecx, dword [ebp + 8]
and ecx, 0x2000000
je 0x10098c11
movzx edx, byte [esp + 0xf]
test edx, edx
jne 0x10098c11
movzx eax, byte [esp + 0x16]
test eax, eax
jne 0x10098c11
mov ecx, dword [esp + 4]
call fcn.100a07d0
movss dword [esp + 0x42c], xmm1
movss dword [esp + 0x428], xmm0
mov ecx, dword [esp + 0x428]
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x430], ecx
mov dword [esp + 0x434], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x430]
mov edx, dword [esp + 0x434]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
call fcn.100a85b0
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x230]
push eax
mov ecx, dword [esp + 0x100]
call fcn.10083f30
lea ecx, [esp + 0x5d8]
push ecx
mov ecx, dword [esp + 0x100]
call fcn.10083fd0
mov edx, dword [esp + 0x18]
add edx, 0xac
mov ecx, dword [esp + 0x18]
add ecx, 0xa4
call fcn.10083240
movss dword [esp + 0x43c], xmm1
movss dword [esp + 0x438], xmm0
mov edx, dword [esp + 0x438]
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x220], edx
mov dword [esp + 0x224], eax
movss xmm0, dword [esp + 0x5e0]
subss xmm0, dword [esp + 0x220]
movss dword [esp + 0x298], xmm0
movss xmm0, dword [esp + 0x5e4]
subss xmm0, dword [esp + 0x224]
movss dword [esp + 0x29c], xmm0
movss xmm0, dword [esp + 0x298]
movss dword [esp + 0x440], xmm0
movss xmm0, dword [esp + 0x29c]
movss dword [esp + 0x444], xmm0
mov ecx, dword [esp + 0x440]
mov edx, dword [esp + 0x444]
mov dword [esp + 0x448], ecx
mov dword [esp + 0x44c], edx
mov eax, dword [esp + 0x448]
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x468], eax
mov dword [esp + 0x46c], ecx
movss xmm0, dword [esp + 0x5d8]
addss xmm0, dword [esp + 0x220]
movss dword [esp + 0x2a0], xmm0
movss xmm0, dword [esp + 0x5dc]
addss xmm0, dword [esp + 0x224]
movss dword [esp + 0x2a4], xmm0
movss xmm0, dword [esp + 0x2a0]
movss dword [esp + 0x450], xmm0
movss xmm0, dword [esp + 0x2a4]
movss dword [esp + 0x454], xmm0
mov edx, dword [esp + 0x450]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x458], edx
mov dword [esp + 0x45c], eax
mov ecx, dword [esp + 0x458]
mov edx, dword [esp + 0x45c]
mov dword [esp + 0x460], ecx
mov dword [esp + 0x464], edx
mov eax, dword [esp + 0x460]
mov ecx, dword [esp + 0x464]
mov dword [esp + 0x588], eax
mov dword [esp + 0x58c], ecx
mov edx, dword [esp + 0x468]
mov eax, dword [esp + 0x46c]
mov dword [esp + 0x590], edx
mov dword [esp + 0x594], eax
movzx ecx, byte [esp + 0xf]
test ecx, ecx
jne 0x10098e60
mov edx, dword [ebp + 8]
and edx, 0x1000000
jne 0x10098e60
mov eax, dword [esp + 4]
movsx ecx, byte [eax + 0xa0]
test ecx, ecx
jg 0x10098e60
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa1]
test eax, eax
jg 0x10098e60
movss xmm0, dword [esp + 0x238]
subss xmm0, dword [esp + 0x230]
comiss xmm0, dword [0x101ca16c]
jbe 0x10098e60
movss xmm0, dword [esp + 0x23c]
subss xmm0, dword [esp + 0x234]
comiss xmm0, dword [0x101ca16c]
jbe 0x10098e60
lea edx, [esp + 0x588]
mov ecx, dword [esp + 4]
call fcn.100955f0
mov ecx, dword [esp + 4]
add ecx, 0xc
mov dword [esp + 0x100], ecx
mov edx, dword [esp + 0x100]
cvttss2si eax, dword [edx]
cvtsi2ss xmm0, eax
movss dword [esp + 0x2a8], xmm0
mov ecx, dword [esp + 0x100]
cvttss2si edx, dword [ecx + 4]
cvtsi2ss xmm0, edx
movss dword [esp + 0x2ac], xmm0
movss xmm0, dword [esp + 0x2a8]
movss dword [esp + 0x470], xmm0
movss xmm0, dword [esp + 0x2ac]
movss dword [esp + 0x474], xmm0
mov eax, dword [esp + 0x470]
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x478], eax
mov dword [esp + 0x47c], ecx
mov edx, dword [esp + 0x478]
mov eax, dword [esp + 0x47c]
mov dword [esp + 0x480], edx
mov dword [esp + 0x484], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x480]
mov eax, dword [esp + 0x484]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp + 8]
and ecx, 0x1000000
je 0x10098f32
mov edx, dword [esp + 0x18]
movss xmm0, dword [edx + 0x28]
movss dword [esp + 0x108], xmm0
jmp 0x10098f7f
mov eax, dword [ebp + 8]
and eax, 0x4000000
je 0x10098f5b
mov ecx, dword [ebp + 8]
and ecx, 0x8000000
jne 0x10098f5b
mov edx, dword [esp + 0x18]
movss xmm0, dword [edx + 0x30]
movss dword [esp + 0x104], xmm0
jmp 0x10098f6d
mov eax, dword [esp + 0x18]
movss xmm0, dword [eax + 0xc]
movss dword [esp + 0x104], xmm0
movss xmm0, dword [esp + 0x104]
movss dword [esp + 0x108], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [esp + 0x108]
movss dword [ecx + 0x44], xmm0
mov byte [esp + 0x17], 0
movzx edx, byte [esp + 0xe]
test edx, edx
je 0x10098fcb
mov eax, dword [ebp + 8]
and eax, 0x1000
jne 0x10098fcb
mov ecx, dword [ebp + 8]
and ecx, 0x4000000
je 0x10098fbb
mov byte [esp + 0x17], 1
jmp 0x10098fcb
mov edx, dword [ebp + 8]
and edx, 0x3000000
jne 0x10098fcb
mov byte [esp + 0x17], 1
mov dword [esp + 0x11c], 0xffffffff
xor eax, eax
mov dword [esp + 0x598], eax
mov dword [esp + 0x59c], eax
mov dword [esp + 0x5a0], eax
mov dword [esp + 0x5a4], eax
mov ecx, dword [esp + 8]
movzx edx, byte [ecx + 0xb4]
test edx, edx
je 0x10099010
mov dword [esp + 0x10c], 2
jmp 0x1009901b
mov dword [esp + 0x10c], 1
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x1a0], eax
mov ecx, dword [esp + 8]
movss xmm0, dword [ecx + 0x1940]
mulss xmm0, dword [0x101ca388]
movss dword [esp + 0x110], xmm0
mov edx, dword [esp + 8]
movss xmm0, dword [edx + 0x1940]
mulss xmm0, dword [0x101ca1fc]
mov eax, dword [esp + 4]
movss xmm1, dword [eax + 0x44]
addss xmm1, dword [0x101ca378]
addss xmm1, xmm0
movss dword [esp + 0x114], xmm1
movss xmm0, dword [esp + 0x110]
comiss xmm0, dword [esp + 0x114]
jb 0x1009909f
movss xmm0, dword [esp + 0x110]
movss dword [esp + 0x118], xmm0
jmp 0x100990b1
movss xmm0, dword [esp + 0x114]
movss dword [esp + 0x118], xmm0
cvttss2si ecx, dword [esp + 0x118]
cvtsi2ss xmm0, ecx
movss dword [esp + 0x32c], xmm0
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x8d]
test eax, eax
jne 0x1009911f
lea ecx, [esp + 0x588]
push ecx
mov edx, 4
imul eax, edx, 0
lea ecx, [esp + eax + 0x59c]
push ecx
mov edx, dword [esp + 0x1a8]
push edx
lea eax, [esp + 0x128]
push eax
lea edx, [esp + 0x50]
mov ecx, dword [esp + 0x14]
call fcn.10094200
movzx ecx, al
test ecx, ecx
je 0x1009911f
mov byte [esp + 0x14], 1
mov dl, byte [esp + 0x14]
mov byte [esp + 0x15], dl
mov eax, dword [esp + 4]
mov cl, byte [esp + 0x11c]
mov byte [eax + 0x94], cl
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x8d]
test eax, eax
jne 0x100996ba
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1c]
movss dword [esp + 0x2b0], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x20]
subss xmm0, dword [esp + 0x38]
movss dword [esp + 0x2b4], xmm0
movss xmm0, dword [esp + 0x2b0]
movss dword [esp + 0x4c8], xmm0
movss xmm0, dword [esp + 0x2b4]
movss dword [esp + 0x4cc], xmm0
mov eax, dword [esp + 4]
add eax, 0x80
mov dword [esp + 0x124], eax
mov ecx, dword [esp + 4]
add ecx, 0x1f4
mov dword [esp + 0x2b8], ecx
lea edx, [esp + 0x630]
push edx
mov ecx, dword [esp + 0x2bc]
call fcn.10083590
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
movss xmm0, dword [eax]
addss xmm0, dword [ecx]
movss dword [esp + 0x2bc], xmm0
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x124]
movss xmm0, dword [edx + 4]
addss xmm0, dword [eax + 4]
movss dword [esp + 0x2c0], xmm0
movss xmm0, dword [esp + 0x2bc]
movss dword [esp + 0x488], xmm0
movss xmm0, dword [esp + 0x2c0]
movss dword [esp + 0x48c], xmm0
mov ecx, dword [esp + 0x488]
mov edx, dword [esp + 0x48c]
mov dword [esp + 0x490], ecx
mov dword [esp + 0x494], edx
mov eax, dword [esp + 0x490]
mov ecx, dword [esp + 0x494]
mov dword [esp + 0x4d0], eax
mov dword [esp + 0x4d4], ecx
movzx edx, byte [esp + 0x10]
test edx, edx
je 0x1009929d
xorps xmm0, xmm0
movss dword [esp + 0x580], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x584], xmm0
lea eax, [esp + 0x580]
mov dword [esp + 0x130], eax
jmp 0x1009940f
mov ecx, dword [esp + 4]
add ecx, 0x3c
mov dword [esp + 0x128], ecx
mov edx, dword [esp + 0x128]
movss xmm0, dword [edx]
mulss xmm0, dword [0x101ca3e0]
movss dword [esp + 0x2c4], xmm0
mov eax, dword [esp + 0x128]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [0x101ca3e0]
movss dword [esp + 0x2c8], xmm0
movss xmm0, dword [esp + 0x2c4]
movss dword [esp + 0x498], xmm0
movss xmm0, dword [esp + 0x2c8]
movss dword [esp + 0x49c], xmm0
mov ecx, dword [esp + 0x498]
mov edx, dword [esp + 0x49c]
mov dword [esp + 0x4a0], ecx
mov dword [esp + 0x4a4], edx
mov eax, dword [esp + 0x4a0]
mov ecx, dword [esp + 0x4a4]
mov dword [esp + 0x4a8], eax
mov dword [esp + 0x4ac], ecx
mov edx, dword [esp + 4]
add edx, 0x24
mov dword [esp + 0x12c], edx
mov eax, dword [esp + 0x12c]
movss xmm0, dword [eax]
addss xmm0, dword [esp + 0x4a8]
movss dword [esp + 0x2cc], xmm0
mov ecx, dword [esp + 0x12c]
movss xmm0, dword [ecx + 4]
addss xmm0, dword [esp + 0x4ac]
movss dword [esp + 0x2d0], xmm0
movss xmm0, dword [esp + 0x2cc]
movss dword [esp + 0x4b0], xmm0
movss xmm0, dword [esp + 0x2d0]
movss dword [esp + 0x4b4], xmm0
mov edx, dword [esp + 0x4b0]
mov eax, dword [esp + 0x4b4]
mov dword [esp + 0x4b8], edx
mov dword [esp + 0x4bc], eax
mov ecx, dword [esp + 0x4b8]
mov edx, dword [esp + 0x4bc]
mov dword [esp + 0x4c0], ecx
mov dword [esp + 0x4c4], edx
mov eax, dword [esp + 0x4c0]
mov ecx, dword [esp + 0x4c4]
mov dword [esp + 0x560], eax
mov dword [esp + 0x564], ecx
lea edx, [esp + 0x560]
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x2d4], eax
mov ecx, dword [esp + 0x2d4]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 0x228], edx
mov dword [esp + 0x22c], eax
movzx ecx, byte [esp + 0x15]
test ecx, ecx
je 0x10099454
movss xmm0, dword [esp + 0x4c8]
movss dword [esp + 0x134], xmm0
jmp 0x10099466
movss xmm0, dword [esp + 0x4d0]
movss dword [esp + 0x134], xmm0
movss xmm0, dword [esp + 0x134]
movss dword [esp + 0x2d8], xmm0
movzx edx, byte [esp + 0x14]
test edx, edx
je 0x10099495
movss xmm0, dword [esp + 0x4cc]
movss dword [esp + 0x138], xmm0
jmp 0x100994a7
movss xmm0, dword [esp + 0x4d4]
movss dword [esp + 0x138], xmm0
movss xmm0, dword [esp + 0x138]
movss dword [esp + 0x148], xmm0
mov eax, dword [ebp + 8]
and eax, 0x4000
jne 0x100994eb
movss xmm0, dword [esp + 0x22c]
comiss xmm0, dword [esp + 0x148]
jbe 0x100994de
mov ecx, dword [ebp + 8]
and ecx, 8
je 0x100994eb
mov dword [esp + 0x13c], 0
jmp 0x100994f6
mov dword [esp + 0x13c], 1
mov edx, dword [esp + 4]
mov al, byte [esp + 0x13c]
mov byte [edx + 0x89], al
mov ecx, dword [ebp + 8]
and ecx, 0x8000
jne 0x10099580
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x89]
test eax, eax
je 0x10099535
mov ecx, dword [esp + 0x18]
movss xmm0, dword [ecx + 0x70]
movss dword [esp + 0x140], xmm0
jmp 0x10099541
xorps xmm0, xmm0
movss dword [esp + 0x140], xmm0
movss xmm0, dword [esp + 0x2d8]
subss xmm0, dword [esp + 0x140]
movss xmm1, dword [esp + 0x228]
comiss xmm1, xmm0
jbe 0x10099573
mov edx, dword [ebp + 8]
and edx, 8
jne 0x10099573
mov eax, dword [ebp + 8]
and eax, 0x800
jne 0x10099580
mov dword [esp + 0x144], 0
jmp 0x1009958b
mov dword [esp + 0x144], 1
mov ecx, dword [esp + 4]
mov dl, byte [esp + 0x144]
mov byte [ecx + 0x88], dl
mov eax, dword [esp + 4]
movzx ecx, byte [eax + 0x88]
test ecx, ecx
je 0x100995fe
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x89]
test eax, eax
jne 0x100995fe
movss xmm0, dword [esp + 0x22c]
comiss xmm0, dword [esp + 0x148]
jbe 0x100995e2
mov ecx, dword [ebp + 8]
and ecx, 8
jne 0x100995e2
mov dword [esp + 0x14c], 1
jmp 0x100995ed
mov dword [esp + 0x14c], 0
mov edx, dword [esp + 4]
mov al, byte [esp + 0x14c]
mov byte [edx + 0x89], al
mov ecx, dword [esp + 4]
movzx edx, byte [ecx + 0x88]
test edx, edx
je 0x10099621
mov eax, dword [esp + 0x18]
movss xmm0, dword [eax + 0x70]
movss dword [esp + 0x154], xmm0
jmp 0x1009962d
xorps xmm0, xmm0
movss dword [esp + 0x154], xmm0
mov ecx, dword [esp + 4]
movzx edx, byte [ecx + 0x89]
test edx, edx
je 0x10099650
mov eax, dword [esp + 0x18]
movss xmm0, dword [eax + 0x70]
movss dword [esp + 0x150], xmm0
jmp 0x1009965c
xorps xmm0, xmm0
movss dword [esp + 0x150], xmm0
movss xmm0, dword [esp + 0x150]
movss dword [esp + 0x4d8], xmm0
movss xmm0, dword [esp + 0x154]
movss dword [esp + 0x4dc], xmm0
mov ecx, dword [esp + 0x4d8]
mov edx, dword [esp + 0x4dc]
mov dword [esp + 0x4e0], ecx
mov dword [esp + 0x4e4], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4e0]
mov edx, dword [esp + 0x4e4]
mov dword [eax + 0x80], ecx
mov dword [eax + 0x84], edx
mov eax, dword [ebp + 8]
and eax, 0x1000000
je 0x100996ea
mov ecx, dword [ebp + 8]
and ecx, 0x4000000
jne 0x100996ea
movzx edx, byte [esp + 0x16]
test edx, edx
jne 0x100996ea
mov eax, dword [esp + 0x1c]
add eax, 0x234
mov dword [esp + 0x158], eax
jmp 0x100996f8
lea ecx, [esp + 0x230]
mov dword [esp + 0x158], ecx
mov edx, dword [esp + 0x158]
mov dword [esp + 0x2dc], edx
mov eax, dword [esp + 0x2dc]
mov ecx, dword [eax]
mov dword [esp + 0x240], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x244], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x248], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x24c], edx
lea eax, [esp + 0x5e8]
push eax
mov ecx, dword [esp + 8]
call fcn.100853e0
lea ecx, [esp + 0x250]
push ecx
mov ecx, dword [esp + 8]
call fcn.10085520
mov edx, dword [esp + 4]
add edx, 0x1e4
mov eax, dword [esp + 0x5e8]
mov dword [edx], eax
mov ecx, dword [esp + 0x5ec]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x5f0]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x5f4]
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 4]
add edx, 0x1e4
mov dword [esp + 0x50], edx
lea edx, [esp + 0x240]
mov ecx, dword [esp + 0x50]
call fcn.10083240
movss dword [esp + 0x4ec], xmm1
movss dword [esp + 0x4e8], xmm0
mov eax, dword [esp + 0x4e8]
mov ecx, dword [esp + 0x4ec]
mov dword [esp + 0x4f0], eax
mov dword [esp + 0x4f4], ecx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4f0]
mov ecx, dword [esp + 0x4f4]
mov dword [edx], eax
mov dword [edx + 4], ecx
lea edx, [esp + 0x248]
mov ecx, dword [esp + 0x50]
add ecx, 8
call fcn.100831b0
movss dword [esp + 0x4fc], xmm1
movss dword [esp + 0x4f8], xmm0
mov edx, dword [esp + 0x4f8]
mov eax, dword [esp + 0x4fc]
mov dword [esp + 0x500], edx
mov dword [esp + 0x504], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x500]
mov eax, dword [esp + 0x504]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x1f4], eax
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x10]
addss xmm0, dword [esp + 0x38]
mov edx, dword [esp + 4]
movss dword [edx + 0x1f8], xmm0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movss xmm0, dword [eax + 0xc]
addss xmm0, dword [ecx + 0x14]
mov edx, dword [esp + 4]
subss xmm0, dword [edx + 0x80]
mov eax, dword [esp + 4]
movss dword [eax + 0x1fc], xmm0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movss xmm0, dword [ecx + 0x10]
addss xmm0, dword [edx + 0x18]
mov eax, dword [esp + 4]
subss xmm0, dword [eax + 0x84]
mov ecx, dword [esp + 4]
movss dword [ecx + 0x200], xmm0
mov edx, dword [ebp + 8]
and edx, 0x400
jne 0x100998ea
mov eax, dword [ebp + 8]
and eax, 1
je 0x100998ea
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x48]
movss dword [esp + 0x15c], xmm0
jmp 0x100998fc
mov edx, dword [esp + 0x18]
movss xmm0, dword [edx + 0x44]
movss dword [esp + 0x15c], xmm0
movss xmm0, dword [esp + 0x15c]
movss dword [esp + 0x2e4], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x48]
movss dword [esp + 0x164], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x3c]
mulss xmm0, dword [0x101ca28c]
cvttss2si edx, xmm0
cvtsi2ss xmm0, edx
movss dword [esp + 0x160], xmm0
movss xmm0, dword [esp + 0x160]
comiss xmm0, dword [esp + 0x164]
jb 0x10099969
movss xmm0, dword [esp + 0x160]
movss dword [esp + 0x168], xmm0
jmp 0x1009997b
movss xmm0, dword [esp + 0x164]
movss dword [esp + 0x168], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [0x101ca28c]
addss xmm0, dword [eax + 0x1f4]
addss xmm0, dword [esp + 0x168]
cvttss2si ecx, xmm0
cvtsi2ss xmm0, ecx
movss dword [esp + 0x2e0], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x2e0]
movss dword [edx + 0x204], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [0x101ca28c]
addss xmm0, dword [eax + 0x1f8]
addss xmm0, dword [esp + 0x2e4]
cvttss2si ecx, xmm0
cvtsi2ss xmm0, ecx
movss dword [esp + 0x2e8], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x2e8]
movss dword [edx + 0x208], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x48]
movss dword [esp + 0x170], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x3c]
mulss xmm0, dword [0x101ca28c]
cvttss2si edx, xmm0
cvtsi2ss xmm0, edx
movss dword [esp + 0x16c], xmm0
movss xmm0, dword [esp + 0x16c]
comiss xmm0, dword [esp + 0x170]
jb 0x10099a5c
movss xmm0, dword [esp + 0x16c]
movss dword [esp + 0x174], xmm0
jmp 0x10099a6e
movss xmm0, dword [esp + 0x170]
movss dword [esp + 0x174], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [0x101ca28c]
addss xmm0, dword [eax + 0x1fc]
subss xmm0, dword [esp + 0x174]
cvttss2si ecx, xmm0
cvtsi2ss xmm0, ecx
movss dword [esp + 0x2ec], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x2ec]
movss dword [edx + 0x20c], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [0x101ca28c]
addss xmm0, dword [eax + 0x200]
mov ecx, dword [esp + 4]
subss xmm0, dword [ecx + 0x48]
cvttss2si edx, xmm0
cvtsi2ss xmm0, edx
movss dword [esp + 0x2f0], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [esp + 0x2f0]
movss dword [eax + 0x210], xmm0
mov ecx, dword [esp + 4]
add ecx, 0x204
mov dword [esp + 0x2f4], ecx
lea edx, [esp + 0x240]
push edx
mov ecx, dword [esp + 0x2f8]
call fcn.100838a0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x14]
comiss xmm0, dword [0x101ca16c]
jbe 0x10099b77
mov ecx, dword [ebp + 8]
and ecx, 0x2000000
jne 0x10099b77
mov edx, dword [ebp + 8]
and edx, 0x40
jne 0x10099b77
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x14]
mulss xmm0, dword [0x101ca2cc]
cvttss2si ecx, xmm0
cvtsi2ss xmm0, ecx
movss dword [esp + 0x2f8], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x2f8]
movss dword [edx + 0x264], xmm0
jmp 0x10099bb1
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x1940]
mulss xmm0, dword [0x101ca4a0]
cvttss2si ecx, xmm0
cvtsi2ss xmm0, ecx
movss dword [esp + 0x2fc], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x2fc]
movss dword [edx + 0x264], xmm0
mov eax, dword [esp + 4]
add eax, 0x1f4
mov dword [esp + 0x178], eax
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x178]
movss xmm0, dword [ecx + 8]
subss xmm0, dword [edx]
movss dword [esp + 0x300], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x3c]
mulss xmm0, dword [0x101ca3e0]
mov ecx, dword [esp + 4]
addss xmm0, dword [ecx + 0x24]
subss xmm0, dword [esp + 0x300]
movss dword [esp + 0x17c], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x17c]
jb 0x10099c28
xorps xmm0, xmm0
movss dword [esp + 0x180], xmm0
jmp 0x10099c3a
movss xmm0, dword [esp + 0x17c]
movss dword [esp + 0x180], xmm0
movss xmm0, dword [esp + 0x180]
movss dword [esp + 0x304], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x304]
movss dword [edx + 0x60], xmm0
mov eax, dword [esp + 4]
add eax, 0x1f4
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x184]
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [edx + 4]
movss dword [esp + 0x308], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x40]
mulss xmm0, dword [0x101ca3e0]
mov ecx, dword [esp + 4]
addss xmm0, dword [ecx + 0x28]
subss xmm0, dword [esp + 0x308]
movss dword [esp + 0x188], xmm0
xorps xmm0, xmm0
comiss xmm0, dword [esp + 0x188]
jb 0x10099cd6
xorps xmm0, xmm0
movss dword [esp + 0x18c], xmm0
jmp 0x10099ce8
movss xmm0, dword [esp + 0x188]
movss dword [esp + 0x18c], xmm0
movss xmm0, dword [esp + 0x18c]
movss dword [esp + 0x30c], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x30c]
movss dword [edx + 0x64], xmm0
mov ecx, dword [esp + 4]
call fcn.1009e5e0
movss dword [esp + 0x50c], xmm1
movss dword [esp + 0x508], xmm0
mov eax, dword [esp + 0x508]
mov ecx, dword [esp + 0x50c]
mov dword [esp + 0x510], eax
mov dword [esp + 0x514], ecx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x510]
mov ecx, dword [esp + 0x514]
mov dword [edx + 0x58], eax
mov dword [edx + 0x5c], ecx
movss xmm0, dword [0x101ca62c]
movss dword [esp + 0x518], xmm0
movss xmm0, dword [0x101ca62c]
movss dword [esp + 0x51c], xmm0
mov edx, dword [esp + 0x518]
mov eax, dword [esp + 0x51c]
mov dword [esp + 0x520], edx
mov dword [esp + 0x524], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x520]
mov eax, dword [esp + 0x524]
mov dword [ecx + 0x68], edx
mov dword [ecx + 0x6c], eax
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x288]
mov dword [esp + 0x310], edx
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x193c]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [esp + 0x314]
call fcn.100d7680
push 0
lea edx, [esp + 0x24c]
lea ecx, [esp + 0x244]
call fcn.100909e0
mov ecx, dword [ebp + 8]
and ecx, 0x8000000
je 0x10099e20
call fcn.1009f4e0
cmp dword [esp + 4], eax
jne 0x10099e20
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa9]
test eax, eax
jg 0x10099e20
mov byte [esp + 0x26], 1
jmp 0x10099e25
mov byte [esp + 0x26], 0
mov cl, byte [esp + 0x26]
mov byte [esp + 0x28], cl
mov edx, dword [esp + 8]
cmp dword [edx + 0x1e14], 0
je 0x10099e57
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1e14]
mov edx, dword [esp + 4]
cmp edx, dword [ecx + 0x320]
jne 0x10099e57
mov byte [esp + 0x27], 1
jmp 0x10099e5c
mov byte [esp + 0x27], 0
mov al, byte [esp + 0x27]
mov byte [esp + 0x29], al
movzx ecx, byte [esp + 0x28]
test ecx, ecx
jne 0x10099e7a
movzx edx, byte [esp + 0x29]
test edx, edx
je 0x10099f0c
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x1e44]
movss dword [esp + 0x314], xmm0
movzx ecx, byte [esp + 0x28]
test ecx, ecx
je 0x10099ea5
mov dword [esp + 0x190], 0x35
jmp 0x10099eb0
mov dword [esp + 0x190], 0x34
movss xmm0, dword [esp + 0x314]
mov ecx, dword [esp + 0x190]
call fcn.100895a0
mov dword [esp + 0x318], eax
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x288]
mov dword [esp + 0x31c], eax
push 0
push ecx
xorps xmm0, xmm0
movss dword [esp], xmm0
mov ecx, dword [esp + 0x320]
push ecx
lea edx, [esp + 0x244]
push edx
lea eax, [esp + 0x240]
push eax
mov ecx, dword [esp + 0x330]
call fcn.100dc1c0
movzx ecx, byte [esp + 0x29]
test ecx, ecx
je 0x10099ffb
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
cmp eax, dword [edx + 0x1e14]
jne 0x10099ffb
lea ecx, [esp + 0x5f8]
push ecx
mov ecx, dword [esp + 8]
call fcn.100853e0
mov edx, dword [esp + 8]
push ecx
movss xmm0, dword [edx + 0x1940]
movss dword [esp], xmm0
lea ecx, [esp + 0x5fc]
call fcn.10083840
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x5fc]
call fcn.10083660
movzx ecx, al
test ecx, ecx
jne 0x10099ffb
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x288]
mov dword [esp + 0x328], eax
mov ecx, dword [esp + 8]
movss xmm0, dword [ecx + 0x1524]
movss dword [esp + 0x320], xmm0
mov edx, dword [esp + 8]
movss xmm0, dword [edx + 0x1e20]
mulss xmm0, dword [0x101ca214]
mov ecx, 0x33
call fcn.100895a0
mov dword [esp + 0x324], eax
push 0
push ecx
movss xmm0, dword [esp + 0x328]
movss dword [esp], xmm0
mov eax, dword [esp + 0x32c]
push eax
lea ecx, [esp + 0x60c]
push ecx
lea edx, [esp + 0x608]
push edx
mov ecx, dword [esp + 0x33c]
call fcn.100dc1c0
mov byte [esp + 0x22], 0
mov eax, dword [ebp + 8]
and eax, 0x1000000
je 0x1009a064
mov ecx, dword [ebp + 8]
and ecx, 0x4000000
jne 0x1009a064
movzx edx, byte [esp + 0x16]
test edx, edx
jne 0x1009a064
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x288]
mov dword [esp + 0x194], ecx
mov edx, dword [esp + 0x194]
mov eax, dword [edx]
sub eax, 1
imul ecx, eax, 0x28
mov edx, dword [esp + 0x194]
mov eax, dword [edx + 8]
cmp dword [eax + ecx + 0x1c], 0
jne 0x1009a064
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x288]
cmp dword [edx + 0x18], 0
jle 0x1009a064
mov byte [esp + 0x22], 1
movzx eax, byte [esp + 0x22]
test eax, eax
je 0x1009a081
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x288]
mov dword [ecx + 0x288], eax
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x1e10], 0
je 0x1009a0a1
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x1e10]
mov dword [esp + 0x198], eax
jmp 0x1009a0b2
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x1d08]
mov dword [esp + 0x198], edx
mov eax, dword [esp + 0x198]
mov dword [esp + 0x19c], eax
movzx ecx, byte [esp + 0x17]
test ecx, ecx
jne 0x1009a0f3
cmp dword [esp + 0x19c], 0
je 0x1009a0ec
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x19c]
mov ecx, dword [edx + 0x324]
cmp ecx, dword [eax + 0x324]
je 0x1009a0f3
mov byte [esp + 0x2a], 0
jmp 0x1009a0f8
mov byte [esp + 0x2a], 1
mov dl, byte [esp + 0x2a]
mov byte [esp + 0x37], dl
lea eax, [esp + 0x598]
push eax
mov ecx, dword [esp + 0x1a4]
push ecx
movzx edx, byte [esp + 0x3f]
push edx
movss xmm0, dword [esp + 0x338]
lea edx, [esp + 0x25c]
mov ecx, dword [esp + 0x10]
call fcn.10095dc0
movzx eax, byte [esp + 0x22]
test eax, eax
je 0x1009a14c
mov ecx, dword [esp + 4]
add ecx, 0x28c
mov edx, dword [esp + 4]
mov dword [edx + 0x288], ecx
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x1e14]
cmp ecx, dword [esp + 4]
jne 0x1009a2cc
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x44]
movss dword [esp + 0x1a4], xmm0
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x1524]
movss dword [esp + 0x1a8], xmm0
movss xmm0, dword [esp + 0x1a4]
comiss xmm0, dword [esp + 0x1a8]
jb 0x1009a1ae
movss xmm0, dword [esp + 0x1a4]
movss dword [esp + 0x1ac], xmm0
jmp 0x1009a1c0
movss xmm0, dword [esp + 0x1a8]
movss dword [esp + 0x1ac], xmm0
movss xmm0, dword [esp + 0x1ac]
movss dword [esp + 0x1b0], xmm0
lea ecx, [esp + 0x5a8]
push ecx
mov ecx, dword [esp + 8]
call fcn.100853e0
mov edx, dword [esp + 8]
push ecx
movss xmm0, dword [edx + 0x1940]
movss dword [esp], xmm0
lea ecx, [esp + 0x5ac]
call fcn.10083840
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x5ac]
call fcn.10083660
movzx ecx, al
test ecx, ecx
je 0x1009a25b
mov edx, dword [esp + 8]
movss xmm0, dword [edx + 0x1940]
xorps xmm0, xmmword [0x101ca7c0]
subss xmm0, dword [0x101ca378]
push ecx
movss dword [esp], xmm0
lea ecx, [esp + 0x5ac]
call fcn.10083840
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x44]
movss dword [esp + 0x1b0], xmm0
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0x288]
mov dword [esp + 0x334], edx
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x1e20]
mov ecx, 0x33
call fcn.100895a0
mov dword [esp + 0x330], eax
push ecx
movss xmm0, dword [0x101ca404]
movss dword [esp], xmm0
push 0
push ecx
movss xmm0, dword [esp + 0x1bc]
movss dword [esp], xmm0
mov ecx, dword [esp + 0x33c]
push ecx
lea edx, [esp + 0x5c0]
push edx
lea eax, [esp + 0x5bc]
push eax
mov ecx, dword [esp + 0x34c]
call fcn.100dbf70
mov ecx, dword [ebp + 8]
and ecx, 8
jne 0x1009a2e6
mov edx, dword [ebp + 8]
and edx, 0x800
je 0x1009a2e6
mov byte [esp + 0x2b], 1
jmp 0x1009a2eb
mov byte [esp + 0x2b], 0
mov al, byte [esp + 0x2b]
mov byte [esp + 0x32], al
mov ecx, dword [ebp + 8]
and ecx, 8
jne 0x1009a302
mov byte [esp + 0x2c], 1
jmp 0x1009a307
mov byte [esp + 0x2c], 0
mov dl, byte [esp + 0x2c]
mov byte [esp + 0x33], dl
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x34]
ucomiss xmm0, dword [0x101ca16c]
lahf
test ah, 0x44
jnp 0x1009a33c
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x34]
movss dword [esp + 0x1bc], xmm0
jmp 0x1009a3d7
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x3c]
mulss xmm0, dword [0x101ca3e0]
mov eax, dword [esp + 4]
movss xmm1, dword [eax + 0x14]
subss xmm1, xmm0
mov ecx, dword [esp + 4]
subss xmm1, dword [ecx + 0x80]
movss dword [esp + 0x1b4], xmm1
movzx edx, byte [esp + 0x32]
test edx, edx
je 0x1009a389
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x24]
movss dword [esp + 0x64], xmm0
jmp 0x1009a392
xorps xmm0, xmm0
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x64]
comiss xmm0, dword [esp + 0x1b4]
jb 0x1009a3b3
movss xmm0, dword [esp + 0x64]
movss dword [esp + 0x1b8], xmm0
jmp 0x1009a3c5
movss xmm0, dword [esp + 0x1b4]
movss dword [esp + 0x1b8], xmm0
movss xmm0, dword [esp + 0x1b8]
movss dword [esp + 0x1bc], xmm0
movss xmm0, dword [esp + 0x1bc]
movss dword [esp + 0x340], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x38]
ucomiss xmm0, dword [0x101ca16c]
lahf
test ah, 0x44
jnp 0x1009a416
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x38]
movss dword [esp + 0x1c8], xmm0
jmp 0x1009a4b7
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x40]
mulss xmm0, dword [0x101ca3e0]
mov ecx, dword [esp + 4]
movss xmm1, dword [ecx + 0x18]
subss xmm1, xmm0
subss xmm1, dword [esp + 0x38]
mov edx, dword [esp + 4]
subss xmm1, dword [edx + 0x84]
movss dword [esp + 0x1c0], xmm1
movzx eax, byte [esp + 0x33]
test eax, eax
je 0x1009a469
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x28]
movss dword [esp + 0x68], xmm0
jmp 0x1009a472
xorps xmm0, xmm0
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x68]
comiss xmm0, dword [esp + 0x1c0]
jb 0x1009a493
movss xmm0, dword [esp + 0x68]
movss dword [esp + 0x1c4], xmm0
jmp 0x1009a4a5
movss xmm0, dword [esp + 0x1c0]
movss dword [esp + 0x1c4], xmm0
movss xmm0, dword [esp + 0x1c4]
movss dword [esp + 0x1c8], xmm0
movss xmm0, dword [esp + 0x1c8]
movss dword [esp + 0x344], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x3c]
movss dword [esp + 0x1cc], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x48]
movss dword [esp + 0x1d0], xmm0
movss xmm0, dword [esp + 0x1cc]
comiss xmm0, dword [esp + 0x1d0]
jb 0x1009a514
movss xmm0, dword [esp + 0x1cc]
movss dword [esp + 0x1d4], xmm0
jmp 0x1009a526
movss xmm0, dword [esp + 0x1d0]
movss dword [esp + 0x1d4], xmm0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1f4]
subss xmm0, dword [edx + 0x58]
addss xmm0, dword [esp + 0x1d4]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [esp + 0x338], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [esp + 0x338]
movss dword [ecx + 0x214], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x40]
movss dword [esp + 0x1d8], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x48]
movss dword [esp + 0x1dc], xmm0
movss xmm0, dword [esp + 0x1d8]
comiss xmm0, dword [esp + 0x1dc]
jb 0x1009a5b5
movss xmm0, dword [esp + 0x1d8]
movss dword [esp + 0x1e0], xmm0
jmp 0x1009a5c7
movss xmm0, dword [esp + 0x1dc]
movss dword [esp + 0x1e0], xmm0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1f8]
subss xmm0, dword [edx + 0x5c]
addss xmm0, dword [esp + 0x1e0]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [esp + 0x33c], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [esp + 0x33c]
movss dword [ecx + 0x218], xmm0
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x214]
addss xmm0, dword [esp + 0x340]
mov eax, dword [esp + 4]
movss dword [eax + 0x21c], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x218]
addss xmm0, dword [esp + 0x344]
mov edx, dword [esp + 4]
movss dword [edx + 0x220], xmm0
mov eax, dword [esp + 4]
add eax, 0x214
mov ecx, dword [esp + 4]
add ecx, 0x224
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movss xmm0, dword [ecx + 0xc]
subss xmm0, dword [edx + 0x58]
mov eax, dword [esp + 4]
addss xmm0, dword [eax + 0x3c]
mov ecx, dword [esp + 4]
movss dword [ecx + 0x244], xmm0
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
movss xmm0, dword [edx + 0x10]
subss xmm0, dword [eax + 0x5c]
mov ecx, dword [esp + 4]
addss xmm0, dword [ecx + 0x40]
addss xmm0, dword [esp + 0x38]
mov edx, dword [esp + 4]
movss dword [edx + 0x248], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x34]
ucomiss xmm0, dword [0x101ca16c]
lahf
test ah, 0x44
jnp 0x1009a6f4
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x34]
movss dword [esp + 0x1e4], xmm0
jmp 0x1009a727
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x3c]
mulss xmm0, dword [0x101ca3e0]
mov eax, dword [esp + 4]
movss xmm1, dword [eax + 0x14]
subss xmm1, xmm0
mov ecx, dword [esp + 4]
subss xmm1, dword [ecx + 0x80]
movss dword [esp + 0x1e4], xmm1
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x244]
addss xmm0, dword [esp + 0x1e4]
mov eax, dword [esp + 4]
movss dword [eax + 0x24c], xmm0
mov ecx, dword [esp + 4]
movss xmm0, dword [ecx + 0x38]
ucomiss xmm0, dword [0x101ca16c]
lahf
test ah, 0x44
jnp 0x1009a772
mov edx, dword [esp + 4]
movss xmm0, dword [edx + 0x38]
movss dword [esp + 0x1e8], xmm0
jmp 0x1009a7ab
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x40]
mulss xmm0, dword [0x101ca3e0]
mov ecx, dword [esp + 4]
movss xmm1, dword [ecx + 0x18]
subss xmm1, xmm0
subss xmm1, dword [esp + 0x38]
mov edx, dword [esp + 4]
subss xmm1, dword [edx + 0x84]
movss dword [esp + 0x1e8], xmm1
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x248]
addss xmm0, dword [esp + 0x1e8]
mov ecx, dword [esp + 4]
movss dword [ecx + 0x250], xmm0
mov edx, dword [esp + 4]
xorps xmm0, xmm0
addss xmm0, dword [edx + 0x3c]
mov eax, dword [esp + 4]
subss xmm0, dword [eax + 0x58]
mov ecx, dword [esp + 4]
movss dword [ecx + 0x10c], xmm0
mov edx, dword [esp + 4]
xorps xmm0, xmm0
movss dword [edx + 0x114], xmm0
mov eax, dword [esp + 4]
xorps xmm0, xmm0
movss dword [eax + 0x110], xmm0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movss xmm0, dword [ecx + 0x10c]
addss xmm0, dword [edx + 0x110]
movss dword [esp + 0x348], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [esp + 0x38]
addss xmm0, dword [eax + 0x40]
mov ecx, dword [esp + 4]
subss xmm0, dword [ecx + 0x5c]
movss dword [esp + 0x34c], xmm0
movss xmm0, dword [esp + 0x348]
movss dword [esp + 0x568], xmm0
movss xmm0, dword [esp + 0x34c]
movss dword [esp + 0x56c], xmm0
lea edx, [esp + 0x568]
mov dword [esp + 0x1f0], edx
mov eax, dword [esp + 4]
add eax, 0xc
mov dword [esp + 0x1ec], eax
mov ecx, dword [esp + 0x1ec]
mov edx, dword [esp + 0x1f0]
movss xmm0, dword [ecx]
addss xmm0, dword [edx]
movss dword [esp + 0x350], xmm0
mov eax, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1f0]
movss xmm0, dword [eax + 4]
addss xmm0, dword [ecx + 4]
movss dword [esp + 0x354], xmm0
movss xmm0, dword [esp + 0x350]
movss dword [esp + 0x528], xmm0
movss xmm0, dword [esp + 0x354]
movss dword [esp + 0x52c], xmm0
mov edx, dword [esp + 0x528]
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x530], edx
mov dword [esp + 0x534], eax
mov ecx, dword [esp + 0x530]
mov edx, dword [esp + 0x534]
mov dword [esp + 0x538], ecx
mov dword [esp + 0x53c], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x538]
mov edx, dword [esp + 0x53c]
mov dword [eax + 0xdc], ecx
mov dword [eax + 0xe0], edx
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xdc]
mov edx, dword [eax + 0xe0]
mov eax, dword [esp + 4]
mov dword [eax + 0xcc], ecx
mov dword [eax + 0xd0], edx
mov ecx, dword [esp + 4]
mov edx, dword [ecx + 0xcc]
mov eax, dword [ecx + 0xd0]
mov ecx, dword [esp + 4]
mov dword [ecx + 0xd4], edx
mov dword [ecx + 0xd8], eax
mov edx, dword [esp + 4]
mov eax, dword [edx + 0xdc]
mov ecx, dword [edx + 0xe0]
mov edx, dword [esp + 4]
mov dword [edx + 0xe4], eax
mov dword [edx + 0xe8], ecx
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xdc]
mov edx, dword [eax + 0xe0]
mov eax, dword [esp + 4]
mov dword [eax + 0xec], ecx
mov dword [eax + 0xf0], edx
xorps xmm0, xmm0
movss dword [esp + 0x540], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x544], xmm0
mov ecx, dword [esp + 0x540]
mov edx, dword [esp + 0x544]
mov dword [esp + 0x548], ecx
mov dword [esp + 0x54c], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x548]
mov edx, dword [esp + 0x54c]
mov dword [eax + 0xfc], ecx
mov dword [eax + 0x100], edx
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0xfc]
mov edx, dword [eax + 0x100]
mov eax, dword [esp + 4]
mov dword [eax + 0xf4], ecx
mov dword [eax + 0xf8], edx
mov ecx, dword [esp + 4]
xorps xmm0, xmm0
movss dword [ecx + 0x108], xmm0
mov edx, dword [esp + 4]
xorps xmm0, xmm0
movss dword [edx + 0x104], xmm0
mov eax, dword [esp + 4]
mov dword [eax + 0x140], 0
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x148]
mov dword [ecx + 0x144], eax
mov ecx, dword [esp + 4]
mov dword [ecx + 0x148], 0
mov edx, dword [esp + 4]
mov byte [edx + 0x150], 0
mov eax, dword [esp + 4]
movss xmm0, dword [eax + 0x64]
comiss xmm0, dword [0x101ca16c]
jbe 0x1009aab1
mov dword [esp + 0x1f4], 1
jmp 0x1009aabc
mov dword [esp + 0x1f4], 0
mov ecx, dword [esp + 4]
mov dl, byte [esp + 0x1f4]
mov byte [ecx + 0x151], dl
mov eax, dword [esp + 4]
mov byte [eax + 0x152], 0
mov ecx, dword [esp + 4]
add ecx, 0x15c
mov dword [esp + 0x358], ecx
movzx edx, byte [esp + 0xe]
push edx
mov eax, dword [esp + 0x1c]
push ecx
movss xmm0, dword [eax + 0x48]
movss dword [esp], xmm0
push 3
mov ecx, dword [esp + 0x364]
call fcn.101147d0
mov ecx, dword [esp + 4]
mov dword [ecx + 0x180], 0
mov edx, dword [esp + 4]
mov dword [edx + 0x184], 0
mov eax, dword [esp + 4]
add eax, 0x188
mov dword [esp + 0x35c], eax
push 0
mov ecx, dword [esp + 0x360]
call fcn.100794f0
mov ecx, dword [esp + 4]
add ecx, 0x268
mov edx, dword [esp + 4]
mov dword [edx + 0x194], ecx
mov eax, dword [esp + 4]
mov dword [eax + 0x198], 0
mov ecx, dword [esp + 4]
mov dword [ecx + 0x1a0], 1
cmp dword [esp + 0x1c], 0
je 0x1009ab90
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x1a0]
mov dword [esp + 0x1f8], eax
jmp 0x1009ab9b
mov dword [esp + 0x1f8], 1
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1f8]
mov dword [ecx + 0x1a4], edx
mov eax, dword [esp + 4]
mov dword [eax + 0x1ac], 0xffffffff
mov ecx, dword [esp + 4]
mov dword [ecx + 0x1a8], 0xffffffff
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x264]
mov dword [edx + 0x1b4], ecx
mov edx, dword [esp + 4]
movss xmm0, dword [0x101ca668]
movss dword [edx + 0x1b8], xmm0
mov eax, dword [esp + 4]
add eax, 0x1bc
mov dword [esp + 0x360], eax
push 0
mov ecx, dword [esp + 0x364]
call fcn.100794f0
mov ecx, dword [esp + 4]
add ecx, 0x1c8
mov dword [esp + 0x364], ecx
push 0
mov ecx, dword [esp + 0x368]
call fcn.100794f0
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa0]
test eax, eax
jle 0x1009ac53
mov ecx, dword [esp + 4]
mov dl, byte [ecx + 0xa0]
sub dl, 1
mov eax, dword [esp + 4]
mov byte [eax + 0xa0], dl
mov ecx, dword [esp + 4]
movsx edx, byte [ecx + 0xa1]
test edx, edx
jle 0x1009ac79
mov eax, dword [esp + 4]
mov cl, byte [eax + 0xa1]
sub cl, 1
mov edx, dword [esp + 4]
mov byte [edx + 0xa1], cl
movzx eax, byte [esp + 0x17]
test eax, eax
je 0x1009ac96
mov ecx, dword [esp + 4]
call fcn.1009b410
xor dl, dl
mov ecx, dword [esp + 4]
call fcn.100a1fa0
mov ecx, dword [ebp + 8]
and ecx, 1
jne 0x1009ada3
mov edx, dword [esp + 4]
movss xmm0, dword [esp + 0x250]
addss xmm0, dword [edx + 0x48]
movss dword [esp + 0x368], xmm0
movss xmm0, dword [esp + 0x254]
movss dword [esp + 0x36c], xmm0
mov eax, dword [esp + 4]
movss xmm0, dword [esp + 0x258]
subss xmm0, dword [eax + 0x48]
movss dword [esp + 0x370], xmm0
movss xmm0, dword [esp + 0x25c]
movss dword [esp + 0x374], xmm0
lea ecx, [esp + 0x618]
mov dword [esp + 0x1fc], ecx
mov edx, dword [esp + 0x1fc]
movss xmm0, dword [esp + 0x368]
movss dword [edx], xmm0
mov eax, dword [esp + 0x1fc]
movss xmm0, dword [esp + 0x36c]
movss dword [eax + 4], xmm0
lea ecx, [esp + 0x620]
mov dword [esp + 0x200], ecx
mov edx, dword [esp + 0x200]
movss xmm0, dword [esp + 0x370]
movss dword [edx], xmm0
mov eax, dword [esp + 0x200]
movss xmm0, dword [esp + 0x374]
movss dword [eax + 4], xmm0
lea ecx, [esp + 0x618]
mov dword [esp + 0x378], ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x37c], edx
mov eax, dword [esp + 0x204]
push eax
mov ecx, dword [esp + 0x40]
push ecx
mov edx, dword [esp + 0x380]
mov ecx, dword [esp + 0x384]
call fcn.100969c0
xor edx, edx
mov eax, dword [esp + 4]
mov word [eax + 0x256], dx
xor ecx, ecx
mov edx, dword [esp + 4]
mov word [edx + 0x254], cx
push 0
lea edx, [esp + 0x25c]
lea ecx, [esp + 0x254]
call fcn.10091730
movzx eax, al
test eax, eax
je 0x1009ade6
mov dword [esp + 0x208], 1
jmp 0x1009adf1
mov dword [esp + 0x208], 0
lea ecx, [esp + 0x250]
push ecx
mov edx, dword [esp + 0x20c]
push edx
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x50]
mov ecx, dword [esp + 0xc]
call fcn.1008c930
jmp 0x1009ae1c
mov ecx, dword [esp + 4]
call fcn.1008bf80
mov ecx, dword [esp + 8]
add ecx, 0x1ccc
mov dword [esp + 0x20c], ecx
mov edx, dword [esp + 0x20c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x20c]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax*4 - 4]
mov dword [esp + 0x380], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x380]
mov dword [ecx + 0x1b0], edx
mov eax, dword [ebp + 8]
and eax, 0x1000000
je 0x1009ae79
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x14c]
mov dword [esp + 0x210], edx
jmp 0x1009ae84
mov dword [esp + 0x210], 0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x210]
mov dword [eax + 0x14c], ecx
push 1
mov edx, dword [esp + 8]
add edx, 0x20c
mov ecx, dword [esp + 8]
add ecx, 0x204
call fcn.100909e0
mov edx, dword [esp + 4]
mov byte [edx + 0x8c], 0
mov eax, dword [esp + 4]
mov cx, word [eax + 0x96]
add cx, 1
mov edx, dword [esp + 4]
mov word [edx + 0x96], cx
mov eax, dword [esp + 8]
mov dword [eax + 0x1c28], 0
movzx ecx, byte [esp + 0x11]
test ecx, ecx
je 0x1009b0b0
mov edx, dword [ebp + 8]
and edx, 0x1000000
je 0x1009afd1
mov eax, dword [ebp + 8]
and eax, 0x40
jne 0x1009af71
mov ecx, dword [esp + 4]
movsx edx, byte [ecx + 0xa0]
test edx, edx
jg 0x1009af71
mov eax, dword [esp + 4]
movsx ecx, byte [eax + 0xa1]
test ecx, ecx
jg 0x1009af71
mov edx, dword [esp + 8]
movzx eax, byte [edx + 0x2ee8]
test eax, eax
jne 0x1009af71
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movss xmm0, dword [ecx + 0x1e4]
comiss xmm0, dword [edx + 0x1ec]
jae 0x1009af66
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movss xmm0, dword [eax + 0x1e8]
comiss xmm0, dword [ecx + 0x1f0]
jb 0x1009af71
mov edx, dword [esp + 4]
mov byte [edx + 0xa8], 1
cmp dword [esp + 0x1c], 0
je 0x1009afa1
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 0x8d]
test ecx, ecx
jne 0x1009af96
mov edx, dword [esp + 0x1c]
movsx eax, byte [edx + 0xa8]
test eax, eax
jle 0x1009afa1
mov ecx, dword [esp + 4]
mov byte [ecx + 0xa8], 1
cmp dword [esp + 0x1c], 0
je 0x1009afd1
mov edx, dword [esp + 0x1c]
movzx eax, byte [edx + 0x8d]
test eax, eax
jne 0x1009afc6
mov ecx, dword [esp + 0x1c]
movsx edx, byte [ecx + 0xa9]
test edx, edx
jle 0x1009afd1
mov eax, dword [esp + 4]
mov byte [eax + 0xa9], 1
mov ecx, dword [esp + 0x18]
xorps xmm0, xmm0
comiss xmm0, dword [ecx]
jb 0x1009afe8
mov edx, dword [esp + 4]
mov byte [edx + 0xa8], 1
mov eax, dword [esp + 4]
movsx ecx, byte [eax + 0xa8]
test ecx, ecx
jg 0x1009b022
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa9]
test eax, eax
jg 0x1009b022
mov ecx, dword [esp + 4]
movsx edx, byte [ecx + 0xaa]
test edx, edx
jg 0x1009b022
mov dword [esp + 0x214], 0
jmp 0x1009b02d
mov dword [esp + 0x214], 1
mov eax, dword [esp + 4]
mov cl, byte [esp + 0x214]
mov byte [eax + 0x91], cl
mov byte [esp + 0x2d], 0
mov edx, dword [esp + 4]
movzx eax, byte [edx + 0x8d]
test eax, eax
jne 0x1009b070
mov ecx, dword [esp + 4]
movzx edx, byte [ecx + 0x8a]
test edx, edx
je 0x1009b070
mov eax, dword [esp + 4]
movzx ecx, byte [eax + 0x91]
test ecx, ecx
je 0x1009b0a2
mov edx, dword [esp + 4]
movsx eax, byte [edx + 0xa0]
test eax, eax
jg 0x1009b0a2
mov ecx, dword [esp + 4]
movsx edx, byte [ecx + 0xa1]
test edx, edx
jg 0x1009b0a2
mov eax, dword [esp + 4]
movsx ecx, byte [eax + 0xa9]
test ecx, ecx
jg 0x1009b0a2
mov byte [esp + 0x2d], 1
mov edx, dword [esp + 4]
mov al, byte [esp + 0x2d]
mov byte [edx + 0x8f], al
mov ecx, dword [esp + 4]
movzx edx, byte [ecx + 0x8f]
test edx, edx
jne 0x1009b0cc
mov dword [esp + 0x218], 1
jmp 0x1009b0d7
mov dword [esp + 0x218], 0
mov al, byte [esp + 0x218]
mov esp, ebp
pop ebp
ret 4