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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x1015d3c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
push esi
mov esi, dword [0x1016274c]
push edi
push 0
mov dword [ebp - 0x6c], eax
mov eax, dword [ebx + 0x10]
push 0
push ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], esi
call fcn.10074c30
add esp, 0xc
lea ecx, [esi + 0x3eec]
push eax
call fcn.100748b0
push dword [ebp - 0x28]
mov ecx, eax
mov edi, eax
mov dword [ebp - 0x74], ecx
test edi, edi
mov dword [ebp - 0x4c], edi
sete al
mov byte [ebp - 0x2a], al
mov byte [ebp - 0x30], al
test ecx, ecx
jne 0x100648da
push dword [ebp - 0x70]
call fcn.10069ef0
mov edi, eax
add esp, 8
mov dword [ebp - 0x4c], edi
jmp 0x100648e6
push dword [ebp - 0x30]
push edi
call fcn.100830f0
add esp, 0xc
mov ecx, dword [ebp - 0x28]
mov eax, ecx
and eax, 0xc0200
cmp eax, 0xc0200
jne 0x100648fd
or ecx, 6
mov dword [ebp - 0x28], ecx
cmp dword [esi + 0x3ee0], 0
mov edx, dword [esi + 0x3ea0]
mov eax, dword [edi + 0x254]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
jne 0x10064925
cmp byte [esi + 0x3eb1], 0
je 0x10064925
mov al, 1
jmp 0x10064927
xor al, al
mov byte [edi + 0xcb], al
lea eax, [edx - 1]
cmp dword [ebp - 0x58], eax
setl dl
mov byte [ebp - 0x68], dl
test ecx, 0x4000000
je 0x10064976
mov eax, dword [esi + 0x40cc]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0x40c8]
mov eax, dword [edi + 0xd8]
cmp edi, dword [edx + esi*8 + 4]
setne cl
cmp eax, dword [edx + esi*8]
mov dl, byte [ebp - 0x68]
mov esi, dword [ebp - 0x38]
setne al
or cl, al
or dl, cl
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x68], dl
mov al, byte [edi + 0xc9]
mov byte [ebp - 0x29], al
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x5c]
je 0x100649f2
mov byte [edi + 0xc9], dl
test dl, dl
je 0x100649ad
or byte [edi + 0xe8], 8
or byte [edi + 0xe9], 8
or byte [edi + 0xea], 8
or byte [edi + 0xeb], 8
mov eax, dword [edi + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + 0x254], eax
xor eax, eax
mov dword [edi + 8], ecx
movsd xmm0, qword [esi + 0x3e98]
cvtpd2ps xmm0, xmm0
mov word [edi + 0xd2], ax
movss dword [edi + 0x25c], xmm0
movzx eax, word [esi + 0x3ef8]
inc dword [esi + 0x3ef8]
mov word [edi + 0xd4], ax
jmp 0x100649f8
mov eax, dword [edi + 8]
mov dword [ebp - 0x28], eax
test dword [esi + 0x3ff0], 0x200
je 0x10064a19
push dword [esi + 0x4000]
push dword [esi + 0x4050]
push edi
call fcn.1007fb20
add esp, 0xc
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x5c]
je 0x10064b0a
cmp dword [edi + 0x390], 0
jne 0x10064ae5
cmp dword [edi + 0x388], 0
jne 0x10064ae5
mov eax, dword [0x1016274c]
xor cl, cl
cmp byte [eax + 0x5a], cl
jne 0x10064a54
cmp byte [edi + 0x28], cl
je 0x10064ae7
test dword [edi + 8], 0x1200001
lea eax, [edi + 8]
mov dword [ebp - 0x54], eax
jne 0x10064ae7
cmp byte [edi + 0xcb], 0
jne 0x10064ae7
mov al, byte [edi + 0x36d]
mov byte [ebp - 0x21], al
push dword [ebp - 0x6c]
push edi
call fcn.10067cc0
mov edx, dword [ebp - 0x54]
add esp, 8
test byte [edi + 0x36d], 1
mov edx, dword [edx]
mov dword [ebp - 0x28], edx
je 0x10064a9d
and dword [esi + 0x3ff0], 0xffffffef
test byte [edi + 0x36d], 4
je 0x10064b0d
mov al, byte [ebp - 0x21]
test al, 4
jne 0x10064b0d
test al, 2
je 0x10064b0d
cmp byte [edi + 0xc9], 0
jne 0x10064b0d
cmp byte [ebp - 0x29], 0
jne 0x10064b0d
or byte [edi + 0xe8], 8
or byte [edi + 0xe9], 8
or byte [edi + 0xea], 8
or byte [edi + 0xeb], 8
mov byte [edi + 0xc9], 1
jmp 0x10064b0d
mov cl, 1
lea eax, [edi + 8]
mov dword [ebp - 0x54], eax
mov al, byte [edi + 0x36d]
mov byte [ebp - 0x21], al
test cl, cl
jne 0x10064a79
and al, 0xfb
and al, 0xfd
and al, 0xfe
mov byte [edi + 0x36d], al
mov edx, dword [ebp - 0x28]
test byte [edi + 0x36d], 1
je 0x10064b26
mov eax, dword [edi + 0x388]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x10064b40
mov eax, dword [esi + 0x3ee0]
test eax, eax
je 0x10064b3d
imul ecx, eax, 0x54
mov eax, dword [esi + 0x3ee8]
mov eax, dword [ecx + eax - 0x54]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x5c]
je 0x10064b5b
mov ecx, edx
and ecx, 0x5000000
neg ecx
sbb ecx, ecx
and ecx, eax
mov dword [ebp - 0x44], ecx
jmp 0x10064b64
mov eax, dword [edi + 0x31c]
mov dword [ebp - 0x44], eax
cmp dword [edi + 0xfc], 0
lea eax, [edi + 0xfc]
jne 0x10064b99
cmp dword [eax + 4], 0
jne 0x10064b88
push 8
mov ecx, eax
call fcn.10085290
lea eax, [edi + 0xfc]
mov edx, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 4]
mov dword [ecx + edx*4], eax
inc dword [edi + 0xfc]
push 0x3c
lea eax, [ebp - 0x12c]
mov dword [esi + 0x3f04], edi
push 0
push eax
call fcn.100d5cf0
mov ecx, dword [0x1016274c]
lea edx, [esi + 0x3ee0]
mov eax, dword [esi + 0x3fec]
xorps xmm0, xmm0
mov dword [ebp - 0xf4], eax
add esp, 0xc
movups xmmword [ebp - 0xf0], xmm0
mov eax, dword [ecx + 0x3f04]
movups xmm0, xmmword [esi + 0x3fb4]
mov word [ebp - 0xe0], 0
mov dword [ebp - 0x130], edi
movzx eax, word [eax + 0xfc]
mov word [ebp - 0xf0], ax
movzx eax, word [ecx + 0x4078]
mov word [ebp - 0xee], ax
movzx eax, word [ecx + 0x4084]
mov word [ebp - 0xec], ax
movzx eax, word [ecx + 0x4090]
mov word [ebp - 0xea], ax
movzx eax, word [ecx + 0x409c]
mov word [ebp - 0xe8], ax
movzx eax, word [ecx + 0x40b4]
movups xmmword [ebp - 0x12c], xmm0
mov word [ebp - 0xe6], ax
movups xmm0, xmmword [esi + 0x3fc4]
movzx eax, word [ecx + 0x40a8]
mov word [ebp - 0xe4], ax
movzx eax, word [ecx + 0x40cc]
movups xmmword [ebp - 0x11c], xmm0
mov word [ebp - 0xe2], ax
movups xmm0, xmmword [esi + 0x3fd4]
movzx eax, word [ecx + 0x52fc]
mov ecx, dword [edx]
movups xmmword [ebp - 0x10c], xmm0
mov word [ebp - 0xe0], ax
mov eax, dword [edx + 4]
movq xmm0, qword [esi + 0x3fe4]
movq qword [ebp - 0xfc], xmm0
mov dword [ebp - 0x30], eax
cmp ecx, eax
jne 0x10064cda
inc ecx
test eax, eax
je 0x10064cc2
cdq
sub eax, edx
lea edx, [esi + 0x3ee0]
sar eax, 1
add eax, dword [ebp - 0x30]
jmp 0x10064cc7
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.100855f0
lea edx, [esi + 0x3ee0]
imul ecx, dword [edx], 0x54
movups xmm0, xmmword [ebp - 0x130]
mov eax, dword [ebp - 0xe0]
add ecx, dword [edx + 8]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ebp - 0x120]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x110]
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [ebp - 0x100]
movups xmmword [ecx + 0x30], xmm0
movups xmm0, xmmword [ebp - 0xf0]
movups xmmword [ecx + 0x40], xmm0
mov dword [ecx + 0x50], eax
inc dword [edx]
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x3f04], 0
test eax, 0x10000000
je 0x10064d3b
inc dword [esi + 0x40d8]
test eax, 0x4000000
je 0x10064d7e
mov eax, dword [esi + 0x40cc]
lea ecx, [esi + 0x40cc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x40c8]
mov dword [eax + edx*8 + 4], edi
lea esi, [eax + edx*8]
mov eax, dword [ebp - 0x3c]
push esi
mov eax, dword [eax + 0x160]
mov dword [esi + 0xc], eax
call fcn.10084f90
mov eax, dword [esi]
mov esi, dword [ebp - 0x38]
mov dword [edi + 0xd8], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x5c]
je 0x10064d9c
push dword [ebp - 0x44]
push eax
push edi
call fcn.10083c90
mov eax, dword [ebp - 0x3c]
add esp, 0xc
mov dword [edi + 0x320], eax
test byte [esi + 0x3ff0], 1
mov byte [ebp - 0x2c], 0
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x2b], 0
je 0x10064e52
mov dl, byte [edi + 0xe8]
mov ecx, dword [esi + 0x3ff4]
movsx eax, dl
test ecx, eax
setne byte [ebp - 0x2c]
test ecx, eax
je 0x10064e41
movss xmm1, dword [esi + 0x4010]
movss xmm0, dword [esi + 0x400c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x1011cc58]
jbe 0x10064e41
mov eax, dword [esi + 0x4004]
mov ecx, dword [esi + 0x4008]
mov dword [edi + 0xf0], ecx
mov dword [edi + 0xec], eax
mov eax, dword [esi + 0x400c]
mov ecx, dword [esi + 0x4010]
mov dword [edi + 0xf8], ecx
mov dword [edi + 0xf4], eax
mov eax, dword [edi + 0xe8]
movzx ecx, dl
and eax, 0xffffff00
and ecx, 0xf1
or ecx, eax
mov dword [edi + 0xe8], ecx
jmp 0x10064e52
push ecx
lea eax, [esi + 0x4004]
push eax
push edi
call fcn.1007fc20
add esp, 0xc
test byte [esi + 0x3ff0], 2
xorps xmm1, xmm1
je 0x10064eb4
movsx eax, byte [edi + 0xe9]
mov ecx, dword [esi + 0x3ff8]
and eax, ecx
je 0x10064e82
movss xmm0, dword [esi + 0x4014]
comiss xmm0, xmm1
jbe 0x10064e82
mov byte [ebp - 0x29], 1
jmp 0x10064e8b
xor dl, dl
mov byte [ebp - 0x29], dl
test eax, eax
je 0x10064e9c
movss xmm0, dword [esi + 0x4018]
comiss xmm0, xmm1
mov byte [ebp - 0x2b], 1
ja 0x10064ea0
mov byte [ebp - 0x2b], 0
push ecx
lea eax, [esi + 0x4014]
push eax
push edi
call fcn.1007fd80
add esp, 0xc
xorps xmm1, xmm1
test byte [esi + 0x3ff0], 0x80
je 0x10064efb
movss xmm0, dword [esi + 0x4024]
comiss xmm0, xmm1
jb 0x10064edc
movss dword [edi + 0xa0], xmm0
mov dword [edi + 0xa8], 0
movss xmm0, dword [esi + 0x4028]
comiss xmm0, xmm1
jb 0x10064efb
movss dword [edi + 0xa4], xmm0
mov dword [edi + 0xac], 0
test byte [esi + 0x3ff0], 4
je 0x10064f18
mov eax, dword [esi + 0x401c]
mov ecx, dword [esi + 0x4020]
mov dword [edi + 0x68], eax
mov dword [edi + 0x6c], ecx
jmp 0x10064f2e
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x5c]
je 0x10064f2e
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0
test dword [esi + 0x3ff0], 0x400
je 0x10064f5b
movups xmm0, xmmword [esi + 0x4054]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esi + 0x4064]
movq qword [edi + 0x20], xmm0
mov eax, dword [esi + 0x406c]
mov dword [edi + 0x28], eax
test byte [esi + 0x3ff0], 8
je 0x10064fa8
mov ecx, dword [esi + 0x3ffc]
mov dl, byte [esi + 0x402d]
test ecx, ecx
je 0x10064f7f
movsx eax, byte [edi + 0xea]
test ecx, eax
je 0x10064fa8
movzx ecx, byte [edi + 0xea]
mov eax, dword [edi + 0xe8]
and ecx, 0xf1
shl ecx, 0x10
and eax, 0xff00ffff
or ecx, eax
mov byte [edi + 0xc6], dl
mov dword [edi + 0xe8], ecx
test byte [esi + 0x3ff0], 0x20
je 0x10064fba
push edi
call fcn.10073850
add esp, 4
cmp byte [edi + 0xc9], 0
je 0x10064fdf
and byte [edi + 0xe8], 0xf7
and byte [edi + 0xe9], 0xf7
and byte [edi + 0xea], 0xf7
and byte [edi + 0xeb], 0xf7
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x5c]
je 0x10066f22
mov eax, dword [ebp - 0x28]
and eax, 0x3000000
mov byte [edi + 0xc3], 1
cmp dword [ebp - 0x6c], 0
mov dword [ebp - 0x54], eax
mov al, byte [edi + 0xe5]
mov byte [ebp - 0x3d], al
setne al
mov byte [edi + 0xcd], al
mov dword [edi + 0x22c], 0xff7fffff
mov dword [edi + 0x230], 0xff7fffff
mov dword [edi + 0x234], 0x7f7fffff
mov dword [edi + 0x238], 0x7f7fffff
mov eax, dword [edi + 0x100]
cmp eax, 1
jge 0x10065079
test eax, eax
je 0x1006505c
cdq
sub eax, edx
lea edx, [edi + 0xfc]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x10065067
mov ecx, 8
lea edx, [edi + 0xfc]
mov eax, 1
cmp ecx, eax
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.10085290
mov dword [edi + 0xfc], 1
mov ecx, dword [edi + 0x288]
call fcn.1008d990
test dword [ebp - 0x28], 0x20000000
mov dword [edi + 0x1b0], 0xffffffff
je 0x100650c3
mov ecx, dword [edi + 0x288]
push 2
push ecx
add ecx, 0x78
call fcn.1008cac0
mov ecx, dword [edi + 0x288]
push 1
push ecx
add ecx, 0x78
call fcn.1008c990
cmp byte [edi + 0x36c], 0
je 0x10065198
mov ecx, dword [edi + 0x288]
push dword [edi + 0x364]
add ecx, 0xc
mov byte [edi + 0x36c], 0
call fcn.10085210
mov eax, dword [edi + 0x288]
mov ecx, dword [edi + 0x368]
add eax, 0x18
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ecx
cmp ecx, dword [eax + 4]
jle 0x10065184
mov eax, dword [0x1016274c]
test eax, eax
je 0x10065114
inc dword [eax + 0xb0]
push dword [0x10162754]
lea eax, [ecx + ecx*4]
shl eax, 2
push eax
call dword [0x1015d264]
mov dword [ebp - 0x48], eax
add esp, 8
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 8]
test edx, edx
je 0x10065178
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
shl ecx, 2
push ecx
push edx
push dword [ebp - 0x48]
call fcn.100d5770
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10065165
mov eax, dword [0x1016274c]
test eax, eax
je 0x10065165
dec dword [eax + 0xb0]
push dword [0x10162754]
push ecx
call dword [0x1015d268]
mov eax, dword [ebp - 0x34]
add esp, 8
mov ecx, dword [ebp - 0x48]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x30]
mov dword [eax + 4], ecx
mov dword [edi + 0x368], 0
mov dword [edi + 0x364], 0
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x100651a4
cmp dword [eax + 0x6c], edi
je 0x100651c7
test byte [edi + 0x36d], 1
jne 0x100651c7
cmp dword [esi + 0x427c], 0
je 0x1006529b
test dword [edi + 8], 0x80000
jne 0x1006529b
cmp dword [ebp - 0x74], 0
je 0x1006529b
mov eax, dword [edi]
mov ecx, eax
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x70]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10065200
test dl, dl
je 0x100651fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10065200
add eax, 2
add ecx, 2
test dl, dl
jne 0x100651e0
xor eax, eax
jmp 0x10065205
sbb eax, eax
or eax, 1
test eax, eax
je 0x1006529b
mov ecx, dword [ebp - 0x70]
mov edx, dword [edi + 0x80]
mov dword [ebp - 0x50], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x30], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10065220
sub ecx, dword [ebp - 0x30]
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
cmp edx, eax
jae 0x10065283
test ecx, ecx
je 0x1006524a
mov eax, dword [0x1016274c]
test eax, eax
je 0x1006524a
dec dword [eax + 0xb0]
push dword [0x10162754]
push ecx
call dword [0x1015d268]
mov eax, dword [0x1016274c]
add esp, 8
test eax, eax
je 0x10065269
inc dword [eax + 0xb0]
push dword [0x10162754]
push dword [ebp - 0x34]
call dword [0x1015d264]
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x50], eax
push eax
push dword [ebp - 0x70]
push ecx
call fcn.100d5770
mov dword [edi], eax
add esp, 0xc
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x80], eax
lea eax, [edi + 0x60]
push eax
lea eax, [edi + 0x58]
push eax
push edi
call fcn.10069110
mov al, byte [edi + 0xe4]
add esp, 0xc
test al, al
jle 0x100652be
dec al
mov byte [edi + 0xe4], al
mov al, byte [edi + 0xe5]
test al, al
jle 0x100652d0
dec al
mov byte [edi + 0xe5], al
mov al, byte [edi + 0xe6]
test al, al
jle 0x100652e2
dec al
mov byte [edi + 0xe6], al
cmp dword [ebp - 0x74], 0
mov cl, byte [ebp - 0x29]
mov dl, byte [ebp - 0x2b]
jne 0x100652fd
test cl, cl
je 0x100652f6
test dl, dl
jne 0x100652fd
mov byte [edi + 0xe5], 1
cmp byte [ebp - 0x68], 0
je 0x10065358
mov eax, dword [ebp - 0x28]
test eax, 0x6000000
je 0x10065358
mov byte [edi + 0xe5], 1
test al, 0x40
je 0x10065358
test cl, cl
jne 0x1006532a
mov dword [edi + 0x50], 0
mov dword [edi + 0x48], 0
test dl, dl
jne 0x1006533c
mov dword [edi + 0x54], 0
mov dword [edi + 0x4c], 0
mov dword [edi + 0x60], 0
mov dword [edi + 0x64], 0
mov dword [edi + 0x58], 0
mov dword [edi + 0x5c], 0
push edi
call fcn.10083dd0
mov ecx, dword [edi + 0x2c]
add esp, 4
mov edx, dword [0x1016274c]
test ecx, ecx
je 0x10065377
mov eax, dword [edx + 0x3ea0]
mov dword [ecx + 0x4c], eax
movss xmm0, dword [0x10114628]
cmp dword [edx + 0x40ec], ecx
je 0x100653c4
test ecx, ecx
je 0x100653b4
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x40e8], eax
mov eax, dword [edx + 0x3808]
mov dword [edx + 0x40ec], ecx
test eax, eax
je 0x100653c4
push ecx
call eax
movss xmm0, dword [0x10114628]
add esp, 4
jmp 0x100653c4
mov dword [edx + 0x40e8], 0x3f800000
mov dword [edx + 0x40ec], ecx
test dword [esi + 8], 0x8000
je 0x100653d5
mov eax, dword [edi + 0x2c]
movss xmm0, dword [eax + 0x28]
movss dword [edi + 0x280], xmm0
mov ecx, dword [0x1016274c]
mov dword [ecx + 0x3f04], edi
mov eax, dword [edi + 0x1b0]
cmp eax, 0xffffffff
je 0x10065402
imul eax, eax, 0x1d8
add eax, dword [ecx + 0x4350]
jmp 0x10065404
xor eax, eax
mov dword [ecx + 0x4334], eax
mov eax, dword [0x1016274c]
movss xmm0, dword [eax + 0x3c9c]
mulss xmm0, dword [edi + 0x27c]
mov eax, dword [edi + 0x31c]
mulss xmm0, dword [edi + 0x280]
test eax, eax
je 0x10065439
mulss xmm0, dword [eax + 0x27c]
movss dword [ecx + 0x3cac], xmm0
movss dword [ecx + 0x3c98], xmm0
mov ecx, dword [edi + 8]
mov dword [ebp - 0x28], ecx
test ecx, 0x1000000
je 0x10065461
movss xmm0, dword [esi + 0x3884]
jmp 0x10065483
test ecx, 0x6000000
je 0x1006547b
test ecx, 0x8000000
jne 0x1006547b
movss xmm0, dword [esi + 0x388c]
jmp 0x10065483
movss xmm0, dword [esi + 0x3868]
movss dword [edi + 0x7c], xmm0
test byte [edi + 0x36d], 1
jne 0x100654b8
mov eax, ecx
and eax, 0x5010000
cmp eax, 0x1000000
jne 0x100654b8
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x100654b8
test ecx, 0x400
jne 0x100654c0
xorps xmm0, xmm0
jmp 0x100654c8
movss xmm1, dword [esi + 0x385c]
movss xmm0, dword [esi + 0x3860]
movss dword [edi + 0x70], xmm1
movss dword [edi + 0x74], xmm0
movss xmm0, dword [edi + 0x70]
maxss xmm0, dword [esi + 0x38a0]
maxss xmm0, dword [esi + 0x4070]
movss dword [edi + 0x170], xmm0
mov eax, dword [esi + 0x4074]
mov dword [edi + 0x174], eax
test cl, 0x21
jne 0x10065586
test byte [edi + 0x36d], 1
jne 0x10065586
lea eax, [ebp - 0x90]
mov ecx, edi
push eax
call fcn.10080c60
cmp dword [esi + 0x3f08], edi
jne 0x10065562
cmp dword [esi + 0x3f2c], 0
jne 0x10065562
cmp dword [esi + 0x3f30], 0
jne 0x10065562
push 1
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.10075af0
add esp, 0xc
test al, al
je 0x10065562
cmp word [esi + 0x3682], 2
jne 0x10065562
mov byte [edi + 0xc7], 1
cmp byte [edi + 0xc7], 0
je 0x1006558d
cmp byte [edi + 0xc6], 0
push edi
sete al
mov byte [edi + 0xc6], al
call fcn.100766e0
add esp, 4
jmp 0x1006558d
mov byte [edi + 0xc6], 0
lea eax, [edi + 0x60]
mov byte [edi + 0xc7], 0
push eax
lea eax, [ebp - 0x98]
push edi
push eax
call fcn.10068e70
mov cl, byte [ebp - 0x2a]
add esp, 0xc
test byte [ebp - 0x28], 0x40
mov byte [ebp - 0x21], cl
je 0x100655f4
cmp byte [edi + 0xc6], 0
jne 0x100655f4
cmp byte [ebp - 0x29], 0
jne 0x100655d4
movss xmm0, dword [ebp - 0x98]
movss dword [edi + 0x50], xmm0
mov byte [ebp - 0x2a], 1
cmp byte [ebp - 0x2b], 0
jne 0x100656a3
movss xmm0, dword [ebp - 0x94]
movss dword [edi + 0x54], xmm0
mov byte [ebp - 0x21], 1
jmp 0x100656a3
mov al, byte [edi + 0xdc]
test al, al
jg 0x1006560b
cmp byte [edi + 0xdd], 0
jle 0x100656a3
cmp byte [ebp - 0x29], 0
jne 0x1006563e
test al, al
jle 0x1006563e
cmp byte [edi + 0xdf], 0
je 0x1006562d
movss xmm0, dword [edi + 0x50]
maxss xmm0, dword [ebp - 0x98]
jmp 0x10065635
movss xmm0, dword [ebp - 0x98]
movss dword [edi + 0x50], xmm0
mov byte [ebp - 0x2a], 1
cmp byte [ebp - 0x2b], 0
jne 0x10065676
cmp byte [edi + 0xdd], 0
jle 0x10065676
cmp byte [edi + 0xdf], 0
je 0x10065665
movss xmm0, dword [edi + 0x54]
maxss xmm0, dword [ebp - 0x94]
jmp 0x1006566d
movss xmm0, dword [ebp - 0x94]
movss dword [edi + 0x54], xmm0
mov byte [ebp - 0x21], 1
cmp byte [edi + 0xc6], 0
jne 0x100656a3
test dword [edi + 8], 0x100
mov ecx, dword [0x1016274c]
jne 0x100656a3
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 0x5370]
jb 0x100656a3
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x5370], eax
lea esi, [edi + 0x50]
push esi
lea eax, [ebp - 0x64]
push edi
push eax
call fcn.10069290
add esp, 0xc
cmp byte [edi + 0xc6], 0
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
movss dword [esi], xmm0
movss dword [esi + 4], xmm1
je 0x100656f6
test dword [ebp - 0x28], 0x1000000
jne 0x100656f6
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.10080c60
movss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0xc]
subss xmm0, dword [eax]
subss xmm1, dword [eax + 4]
mov edx, dword [edi + 8]
movss dword [edi + 0x48], xmm0
movss dword [edi + 0x4c], xmm1
mov eax, dword [0x1016274c]
test dl, 1
je 0x10065712
xorps xmm1, xmm1
jmp 0x1006574c
movss xmm0, dword [eax + 0x3c9c]
mulss xmm0, dword [edi + 0x27c]
mov ecx, dword [edi + 0x31c]
mulss xmm0, dword [edi + 0x280]
test ecx, ecx
je 0x1006573c
mulss xmm0, dword [ecx + 0x27c]
movss xmm1, dword [eax + 0x3894]
addss xmm1, xmm1
addss xmm1, xmm0
test edx, 0x400
je 0x10065798
movss xmm2, dword [eax + 0x3c9c]
mulss xmm2, dword [edi + 0x27c]
mov ecx, dword [edi + 0x31c]
mulss xmm2, dword [edi + 0x280]
test ecx, ecx
je 0x1006577e
mulss xmm2, dword [ecx + 0x27c]
movss xmm0, dword [eax + 0x3894]
addss xmm2, dword [edi + 0x174]
addss xmm0, xmm0
addss xmm2, xmm0
jmp 0x1006579b
xorps xmm2, xmm2
cmp byte [ebp - 0x68], 0
addss xmm2, xmm1
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x38]
movss dword [ebp - 0x50], xmm2
je 0x100657f3
mov eax, edx
mov dword [edi + 0xe0], 0xffffffff
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x100657f3
cmp byte [ebp - 0x2c], 0
jne 0x100657f3
mov eax, dword [esi + 0x40cc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x40d4]
movss xmm0, dword [eax + ecx*8 - 0x10]
movss xmm1, dword [eax + ecx*8 - 0xc]
movss dword [edi + 0x40], xmm0
movss dword [edi + 0x44], xmm1
test edx, 0x1000000
je 0x1006588a
mov ecx, dword [ebp - 0x44]
add ecx, 0x19c
mov dword [ebp - 0x34], ecx
mov ax, word [ecx]
mov word [edi + 0xd2], ax
mov eax, dword [ecx + 4]
cmp dword [ecx], eax
jne 0x10065849
mov edx, dword [ecx]
inc edx
mov dword [ebp - 0x30], edx
test eax, eax
je 0x10065833
cdq
sub eax, edx
mov edx, dword [ebp - 0x30]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x10065838
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.10085290
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ecx]
mov eax, dword [eax + 0x1a4]
mov dword [eax + ecx*4], edi
mov ecx, dword [ebp - 0x44]
mov al, byte [ebp - 0x2c]
inc dword [ecx + 0x19c]
test edx, 0x4000000
jne 0x1006588d
test al, al
jne 0x1006588d
cmp dword [ebp - 0x54], 0x3000000
je 0x1006588d
mov eax, dword [ecx + 0x108]
mov ecx, dword [ecx + 0x10c]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
mov al, byte [ebp - 0x2c]
movss xmm1, dword [edi + 0xec]
ucomiss xmm1, dword [0x1011cd04]
lahf
test ah, 0x44
jnp 0x100658f0
cmp byte [edi + 0xe5], 0
jne 0x100658f0
movss xmm0, dword [edi + 0xf4]
lea eax, [ebp - 0x64]
mulss xmm0, dword [edi + 0x48]
push 0
push eax
push edi
subss xmm1, xmm0
movss xmm0, dword [edi + 0xf0]
movss dword [ebp - 0x64], xmm1
movss xmm1, dword [edi + 0xf8]
mulss xmm1, dword [edi + 0x4c]
subss xmm0, xmm1
movss dword [ebp - 0x60], xmm0
call fcn.1007fc20
add esp, 0xc
jmp 0x1006593e
test edx, 0x10000000
jne 0x1006591e
test edx, 0x4000000
je 0x10065909
test al, al
jne 0x10065909
cmp byte [ebp - 0x3d], al
jg 0x1006591e
test edx, 0x2000000
je 0x1006593e
test al, al
jne 0x1006593e
cmp dword [ebp - 0x54], 0x3000000
je 0x1006593e
lea eax, [ebp - 0x64]
push edi
push eax
call fcn.10072b50
add esp, 8
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax]
movss dword [edi + 0x40], xmm0
movss dword [edi + 0x44], xmm1
cmp dword [edi + 0x3c], 0
jl 0x10065aaf
cmp byte [edi + 0xc2], 0
jne 0x10065aaf
mov eax, dword [edi + 0x2c]
test dword [eax + 4], 0x400
jne 0x10065aaf
movss xmm0, dword [edi + 0x40]
lea ecx, [edi + 0x40]
comiss xmm0, dword [eax + 8]
movss xmm6, dword [eax + 0xc]
movaps xmm2, xmm0
movss xmm7, dword [edi + 0x44]
movaps xmm5, xmm6
movss xmm3, dword [eax + 8]
movaps xmm4, xmm7
addss xmm3, dword [eax + 0x10]
addss xmm5, dword [eax + 0x14]
addss xmm2, dword [edi + 0x48]
addss xmm4, dword [edi + 0x4c]
jb 0x100659b2
comiss xmm7, xmm6
jb 0x100659b2
comiss xmm3, xmm2
jb 0x100659b2
comiss xmm5, xmm4
jae 0x10065aaf
push 0x20
lea eax, [edi + 0x48]
push eax
push ecx
push dword [edi + 4]
push edi
call fcn.10064300
mov edx, eax
add esp, 0x14
mov dword [edi + 0x2c], edx
mov ecx, dword [0x1016274c]
mov dword [ebp - 0x30], ecx
test edx, edx
je 0x100659e3
mov ecx, dword [ecx + 0x3ea0]
mov dword [edx + 0x4c], ecx
mov ecx, dword [ebp - 0x30]
cmp dword [ecx + 0x40ec], edx
je 0x10065a20
test edx, edx
je 0x10065a10
mov eax, dword [edx + 0x28]
mov dword [ecx + 0x40e8], eax
mov eax, dword [ecx + 0x3808]
mov dword [ecx + 0x40ec], edx
test eax, eax
je 0x10065a20
push edx
call eax
add esp, 4
jmp 0x10065a20
mov dword [ecx + 0x40e8], 0x3f800000
mov dword [ecx + 0x40ec], edx
test dword [esi + 8], 0x8000
je 0x10065a33
mov eax, dword [edi + 0x2c]
movss xmm0, dword [eax + 0x28]
jmp 0x10065a3b
movss xmm0, dword [0x10114628]
movss dword [edi + 0x280], xmm0
mov ecx, dword [0x1016274c]
mov dword [ecx + 0x3f04], edi
mov eax, dword [edi + 0x1b0]
cmp eax, 0xffffffff
je 0x10065a68
imul eax, eax, 0x1d8
add eax, dword [ecx + 0x4350]
jmp 0x10065a6a
xor eax, eax
mov dword [ecx + 0x4334], eax
mov eax, dword [0x1016274c]
movss xmm0, dword [eax + 0x3c9c]
mulss xmm0, dword [edi + 0x27c]
mov eax, dword [edi + 0x31c]
mulss xmm0, dword [edi + 0x280]
test eax, eax
je 0x10065a9f
mulss xmm0, dword [eax + 0x27c]
movss dword [ecx + 0x3cac], xmm0
movss dword [ecx + 0x3c98], xmm0
mov dl, byte [edi + 0xc2]
test dl, dl
je 0x10065acb
push dword [ebp - 0x3c]
push edi
call fcn.10084850
mov dl, byte [edi + 0xc2]
add esp, 8
cmp byte [ebp - 0x2c], 0
mov eax, dword [edi + 0x2c]
movss xmm6, dword [esi + 0x3900]
maxss xmm6, dword [esi + 0x3908]
movss xmm7, dword [esi + 0x38fc]
movss xmm0, dword [eax + 8]
movss xmm1, dword [eax + 0xc]
movaps xmm5, xmm0
movss xmm2, dword [eax + 0x18]
movaps xmm4, xmm1
movss xmm3, dword [eax + 0x1c]
maxss xmm7, dword [esi + 0x3904]
addss xmm5, dword [eax + 0x10]
addss xmm4, dword [eax + 0x14]
mov ecx, dword [ebp - 0x28]
movss dword [ebp - 0x90], xmm0
movaps xmm0, xmm3
addss xmm0, dword [eax + 0x24]
movss dword [ebp - 0x8c], xmm1
addss xmm3, xmm6
movaps xmm1, xmm2
movss dword [ebp - 0x88], xmm5
addss xmm1, dword [eax + 0x20]
addss xmm2, xmm7
movss dword [ebp - 0x84], xmm4
subss xmm0, xmm6
movss dword [ebp - 0x34], xmm6
movss dword [ebp - 0x30], xmm7
movss dword [ebp - 0xbc], xmm3
subss xmm1, xmm7
movss dword [ebp - 0xc0], xmm2
movss dword [ebp - 0xb4], xmm0
movss dword [ebp - 0xb8], xmm1
jne 0x10065c54
test ecx, 0x1000000
jne 0x10065c54
cmp byte [edi + 0xdc], 0
jg 0x10065c54
cmp byte [edi + 0xdd], 0
jg 0x10065c54
test dl, dl
jne 0x10065be4
subss xmm5, dword [eax + 8]
xorps xmm2, xmm2
comiss xmm5, xmm2
jbe 0x10065c54
subss xmm4, dword [eax + 0xc]
comiss xmm4, xmm2
jbe 0x10065c54
lea eax, [ebp - 0xc0]
push eax
push edi
call fcn.100695f0
add esp, 8
jmp 0x10065c51
cmp dword [esi + 0x3824], 0
jle 0x10065c54
push eax
call fcn.10074870
movss xmm3, dword [eax + 0x10]
movss xmm2, dword [eax + 0x14]
movaps xmm1, xmm3
addss xmm3, dword [eax + 0x18]
addss xmm1, dword [ebp - 0x30]
movaps xmm0, xmm2
addss xmm2, dword [eax + 0x1c]
addss xmm0, dword [ebp - 0x34]
subss xmm3, dword [ebp - 0x30]
lea eax, [ebp - 0xc0]
movss dword [ebp - 0xc0], xmm1
push eax
subss xmm2, dword [ebp - 0x34]
push edi
movss dword [ebp - 0xbc], xmm0
movss dword [ebp - 0xb8], xmm3
movss dword [ebp - 0xb4], xmm2
call fcn.100695f0
add esp, 0xc
mov ecx, dword [ebp - 0x28]
cmp byte [edi + 0xc2], 0
cvttss2si eax, dword [edi + 0x40]
movd xmm1, eax
cvttss2si eax, dword [edi + 0x44]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x40], xmm1
movss dword [edi + 0x44], xmm0
jne 0x10065cbc
test byte [edi + 0x36d], 1
jne 0x10065cbc
test ecx, 0x1000000
je 0x10065c9a
movss xmm0, dword [esi + 0x3880]
jmp 0x10065cbf
mov eax, ecx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x10065cb2
movss xmm0, dword [esi + 0x3888]
jmp 0x10065cbf
movss xmm0, dword [esi + 0x3864]
jmp 0x10065cbf
xorps xmm0, xmm0
xor al, al
movss dword [edi + 0x78], xmm0
mov dword [ebp - 0x48], eax
cmp byte [ebp - 0x68], al
je 0x10065ef6
test ecx, 0x1000
jne 0x10065ef6
test ecx, 0x4000000
je 0x10065cec
mov byte [ebp - 0x48], 1
jmp 0x10065d11
test byte [edi + 0x36d], 1
jne 0x10065cfd
test ecx, 0x1000000
jne 0x10065d11
test ecx, 0x2000000
movzx eax, al
mov ecx, 1
cmove eax, ecx
mov dword [ebp - 0x48], eax
call fcn.10074760
test eax, eax
je 0x10065ef6
push eax
push edi
call fcn.10075d90
add esp, 8
test al, al
jne 0x10065ef6
mov byte [ebp - 0x48], al
cmp edi, dword [edi + 0x324]
jne 0x10065ef6
mov edx, dword [0x1016274c]
mov dword [ebp - 0x3c], edx
mov eax, dword [edx + 0x40c0]
test eax, eax
jle 0x10065e06
add eax, 0xffffffff
mov dword [ebp - 0x34], eax
js 0x10065e06
mov edx, dword [edx + 0x40c8]
lea ecx, [eax + eax*4]
add edx, 4
lea edx, [edx + ecx*8]
mov dword [ebp - 0x30], edx
mov edx, dword [edx]
test edx, edx
je 0x10065df1
test dword [edx + 8], 0x8000000
je 0x10065df1
cmp byte [edx + 0xc3], 0
jne 0x10065d99
cmp byte [edx + 0xc4], 0
je 0x10065df1
mov eax, edi
cmp dword [edi + 0x324], edx
je 0x10065e06
cmp eax, edx
je 0x10065e06
mov eax, dword [eax + 0x320]
test eax, eax
jne 0x10065da3
mov eax, dword [edx + 0x320]
mov ecx, dword [eax + 0x324]
test ecx, ecx
je 0x10065dee
mov eax, edi
cmp dword [edi + 0x324], ecx
je 0x10065e08
nop dword [eax + eax]
cmp eax, ecx
je 0x10065e08
mov eax, dword [eax + 0x320]
test eax, eax
jne 0x10065dd0
mov eax, dword [ecx + 0x320]
mov ecx, dword [eax + 0x324]
test ecx, ecx
jne 0x10065dc1
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
dec eax
sub edx, 0x28
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
test eax, eax
jns 0x10065d74
xor edx, edx
mov eax, dword [edx + 0x324]
mov ecx, dword [edi + 0x324]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], ecx
mov edx, dword [eax + 0x3ec4]
mov eax, dword [eax + 0x3ebc]
lea eax, [edx + eax*4]
cmp edx, eax
jae 0x10065e3b
cmp dword [edx], ecx
je 0x10065e3b
add edx, 4
cmp edx, eax
jb 0x10065e30
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x3ec4]
sub edx, ecx
mov eax, dword [eax + 0x3ebc]
sar edx, 2
lea eax, [ecx + eax*4]
cmp ecx, eax
jae 0x10065e6e
mov esi, dword [ebp - 0x34]
nop dword [eax]
cmp dword [ecx], esi
je 0x10065e6b
add ecx, 4
cmp ecx, eax
jb 0x10065e60
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
sub ecx, dword [eax + 0x3ec4]
sar ecx, 2
mov dword [ebp - 0x60], ecx
lea eax, [ecx*4]
mov dword [ebp - 0x34], eax
cmp edx, ecx
jge 0x10065ec3
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + 0x3ec4]
lea ecx, [eax + edx*4]
mov eax, dword [ebp - 0x60]
sub eax, edx
lea eax, [eax*4 - 4]
push eax
lea eax, [ecx + 4]
push eax
push ecx
call fcn.100d5770
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax + 0x3ec4]
mov dword [edx + eax - 4], ecx
jmp 0x10065ef3
mov esi, dword [ebp - 0x3c]
sub edx, ecx
shl edx, 2
push edx
add eax, dword [esi + 0x3ec4]
push eax
add eax, 4
push eax
call fcn.100d5770
mov edx, dword [ebp - 0x34]
mov eax, esi
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x38]
mov eax, dword [eax + 0x3ec4]
mov dword [edx + eax], ecx
add esp, 0xc
cmp dword [edi + 0x38c], 0
jne 0x10065f0c
test byte [edi + 0x36d], 1
je 0x10065f0c
xor al, al
jmp 0x10065f0e
mov al, 1
movss xmm2, dword [esi + 0x3c98]
xorps xmm0, xmm0
movaps xmmword [ebp - 0x20], xmm0
movaps xmm1, xmm2
movss xmm0, dword [edi + 0x78]
xor ecx, ecx
addss xmm0, dword [0x10114628]
mulss xmm2, dword [0x1011cc74]
cmp byte [esi + 0x65], cl
mulss xmm1, dword [0x1011ccac]
setne cl
mov byte [ebp - 0x34], al
addss xmm0, xmm2
mov dword [ebp - 0x30], 0xffffffff
inc ecx
mov dword [ebp - 0x3c], ecx
maxss xmm1, xmm0
cvttss2si esi, xmm1
test al, al
je 0x10065f98
cmp byte [edi + 0xc6], 0
jne 0x10065f98
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x20]
push eax
push ecx
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x98]
push eax
push edi
call fcn.10083230
add esp, 0x18
test al, al
je 0x10065f98
mov byte [ebp - 0x21], 1
mov byte [ebp - 0x2a], 1
cmp byte [edi + 0xc2], 0
mov al, byte [ebp - 0x30]
mov byte [edi + 0xce], al
je 0x10066085
mov edx, dword [edi + 0x2c]
cmp byte [edx + 0x44], 0
jne 0x10065fc3
mov eax, dword [edi + 0x40]
mov ecx, dword [edi + 0x44]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov edx, dword [edi + 0x2c]
cmp byte [edx + 0x45], 0
jne 0x10065fd8
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x4c]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
mov eax, dword [edi + 0x2c]
movss xmm0, dword [eax + 0xe4]
addss xmm0, dword [eax + 0xc]
movss xmm2, dword [eax + 0xe0]
movaps xmm1, xmm2
addss xmm1, dword [eax + 8]
movss dword [eax + 0x1c], xmm0
movss xmm0, dword [eax + 0x10]
subss xmm0, xmm2
xorps xmm2, xmm2
movss dword [eax + 0x18], xmm1
xorps xmm1, xmm1
addss xmm0, dword [eax + 0xe8]
maxss xmm2, xmm0
movss xmm0, dword [eax + 0x14]
subss xmm0, dword [eax + 0xe4]
addss xmm0, dword [eax + 0xec]
movss dword [eax + 0x20], xmm2
maxss xmm1, xmm0
movss dword [eax + 0x24], xmm1
mov eax, dword [edi + 0x2c]
movss xmm0, dword [eax + 0xc]
movss xmm1, dword [eax + 8]
movss dword [ebp - 0x90], xmm1
addss xmm1, dword [eax + 0x10]
movss dword [ebp - 0x8c], xmm0
addss xmm0, dword [eax + 0x14]
movss dword [ebp - 0x88], xmm1
movss dword [ebp - 0x84], xmm0
movaps xmm0, xmmword [ebp - 0x90]
movaps xmmword [ebp - 0x90], xmm0
cmp byte [edi + 0xc6], 0
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edi + 0x34], ecx
mov dword [edi + 0x38], eax
jne 0x100661cc
cmp dword [ebp - 0x74], 0
movss xmm2, dword [edi + 0x1f4]
movss xmm3, dword [edi + 0x1f8]
subss xmm2, dword [edi + 0x1ec]
subss xmm3, dword [edi + 0x1f0]
movss xmm4, dword [edi + 0x54]
movss xmm5, dword [edi + 0x50]
subss xmm4, dword [ebp - 0x50]
addss xmm2, dword [edi + 0xb8]
addss xmm3, dword [edi + 0xbc]
jne 0x100660ee
xorps xmm1, xmm1
xorps xmm0, xmm0
jmp 0x1006610a
movss xmm1, dword [edi + 0x70]
movss xmm0, dword [edi + 0x74]
addss xmm1, xmm1
addss xmm0, xmm0
addss xmm1, dword [edi + 0x58]
addss xmm0, dword [edi + 0x5c]
cmp byte [ebp - 0x2a], 0
jne 0x10066113
movaps xmm5, xmm2
cmp byte [ebp - 0x21], 0
jne 0x1006611c
movaps xmm4, xmm3
mov eax, dword [ebp - 0x28]
test eax, 0x4000
jne 0x10066133
comiss xmm0, xmm4
jbe 0x1006612f
test al, 8
je 0x10066133
xor cl, cl
jmp 0x10066135
mov cl, 1
mov byte [edi + 0xc1], cl
test eax, 0x8000
jne 0x10066180
test cl, cl
je 0x10066156
mov eax, dword [ebp - 0x38]
movss xmm2, dword [eax + 0x38c8]
mov eax, dword [ebp - 0x28]
jmp 0x10066159
xorps xmm2, xmm2
subss xmm5, xmm2
comiss xmm1, xmm5
jbe 0x1006616e
and eax, 0x808
cmp eax, 0x800
je 0x1006617d
mov eax, dword [ebp - 0x38]
xorps xmm1, xmm1
mov byte [edi + 0xc0], 0
jmp 0x100661ab
mov eax, dword [ebp - 0x28]
mov byte [edi + 0xc0], 1
test cl, cl
jne 0x100661a0
comiss xmm0, xmm4
jbe 0x10066198
test al, 8
jne 0x10066198
mov cl, 1
jmp 0x1006619a
xor cl, cl
mov byte [edi + 0xc1], cl
mov eax, dword [ebp - 0x38]
movss xmm1, dword [eax + 0x38c8]
test cl, cl
je 0x100661b9
movss xmm0, dword [eax + 0x38c8]
jmp 0x100661bc
xorps xmm0, xmm0
movss dword [edi + 0xb8], xmm0
movss dword [edi + 0xbc], xmm1
mov eax, dword [ebp - 0x28]
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x100661ee
cmp dword [ebp - 0x54], 0x3000000
je 0x100661ee
mov eax, dword [ebp - 0x44]
add eax, 0x22c
jmp 0x100661f4
lea eax, [ebp - 0x90]
test byte [edi + 8], 1
movups xmm0, xmmword [eax]
mov ecx, dword [0x1016274c]
movss xmm3, dword [edi + 0x40]
movss xmm6, dword [edi + 0x44]
movaps xmm4, xmm3
addss xmm4, dword [edi + 0x48]
movaps xmm5, xmm6
addss xmm5, dword [edi + 0x4c]
movups xmmword [ebp - 0xd0], xmm0
je 0x10066229
xorps xmm2, xmm2
jmp 0x10066263
movss xmm0, dword [ecx + 0x3c9c]
mulss xmm0, dword [edi + 0x27c]
mov eax, dword [edi + 0x31c]
mulss xmm0, dword [edi + 0x280]
test eax, eax
je 0x10066253
mulss xmm0, dword [eax + 0x27c]
movss xmm2, dword [ecx + 0x3894]
addss xmm2, xmm2
addss xmm2, xmm0
movss xmm0, dword [edi + 0x44]
addss xmm2, xmm6
movaps xmm1, xmm3
movss dword [ebp - 0xb0], xmm3
addss xmm1, dword [edi + 0x50]
movss dword [ebp - 0xac], xmm0
movss dword [ebp - 0xa4], xmm2
movss dword [ebp - 0xa8], xmm1
movss dword [edi + 0x1dc], xmm3
movss dword [edi + 0x1e0], xmm6
movss dword [edi + 0x1e4], xmm4
movss dword [edi + 0x1e8], xmm5
test byte [edi + 0x36d], 1
je 0x100662d0
mov ecx, edi
call fcn.10080bf0
fadd dword [edi + 0x1e0]
fstp dword [edi + 0x1e0]
movss xmm1, dword [edi + 0x1dc]
movss xmm0, dword [edi + 0x1e0]
movss xmm4, dword [ebp - 0xd0]
movss xmm5, dword [ebp - 0xcc]
maxss xmm1, xmm4
mov eax, dword [ebp - 0x28]
maxss xmm0, xmm5
mov edx, dword [ebp - 0x38]
and eax, 0x401
movss dword [edi + 0x1dc], xmm1
movss dword [edi + 0x1e0], xmm0
movss xmm0, dword [edi + 0x1e8]
movss xmm1, dword [edi + 0x1e4]
minss xmm0, dword [ebp - 0xc4]
minss xmm1, dword [ebp - 0xc8]
movss dword [edi + 0x1e8], xmm0
movss dword [edi + 0x1e4], xmm1
movss xmm7, dword [edi + 0x40]
movss xmm6, dword [edi + 0x44]
movss dword [edi + 0x1ec], xmm7
movaps xmm0, xmm6
addss xmm7, dword [edi + 0x48]
addss xmm6, dword [edi + 0x4c]
addss xmm0, dword [ebp - 0x50]
subss xmm7, dword [edi + 0xb8]
subss xmm6, dword [edi + 0xbc]
movss dword [ebp - 0x60], xmm0
movss dword [edi + 0x1f0], xmm0
movss dword [edi + 0x1f4], xmm7
movss dword [edi + 0x1f8], xmm6
cmp eax, 1
jne 0x100663a0
movss xmm0, dword [edi + 0x7c]
jmp 0x100663a8
movss xmm0, dword [edx + 0x389c]
movss xmm2, dword [0x1011b088]
movss dword [ebp - 0x30], xmm0
addss xmm7, xmm2
movss xmm0, dword [edi + 0x70]
addss xmm6, xmm2
mulss xmm0, xmm2
movss xmm3, dword [ebp - 0xc4]
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0x40]
addss xmm0, xmm2
subss xmm6, dword [edi + 0x7c]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [edi + 0x7c]
addss xmm0, xmm1
subss xmm7, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x1fc], xmm0
movss xmm0, dword [ebp - 0x60]
addss xmm0, xmm2
addss xmm0, dword [ebp - 0x30]
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvttss2si ecx, xmm7
movss dword [edi + 0x200], xmm0
movd xmm0, ecx
cvttss2si ecx, xmm6
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x204], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x208], xmm0
movss xmm0, dword [edi + 0x200]
comiss xmm5, xmm0
jbe 0x10066460
movaps xmm1, xmm5
jmp 0x10066467
movaps xmm1, xmm3
minss xmm1, xmm0
movss xmm6, dword [ebp - 0xc8]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
comiss xmm4, xmm2
jbe 0x10066480
movaps xmm0, xmm4
jmp 0x10066487
movaps xmm0, xmm6
minss xmm0, xmm2
movss dword [edi + 0x1fc], xmm0
movss dword [edi + 0x200], xmm1
movss xmm0, dword [edi + 0x208]
comiss xmm5, xmm0
ja 0x100664ab
movaps xmm5, xmm3
minss xmm5, xmm0
movss xmm0, dword [edi + 0x204]
comiss xmm4, xmm0
ja 0x100664bf
movaps xmm4, xmm6
minss xmm4, xmm0
movss dword [edi + 0x204], xmm4
xorps xmm2, xmm2
movss dword [edi + 0x208], xmm5
movss xmm0, dword [edi + 0x48]
comiss xmm0, xmm2
jbe 0x100664ef
test dword [ebp - 0x28], 0x2000040
jne 0x100664ef
mulss xmm0, dword [0x1011cc88]
jmp 0x100664ff
movss xmm0, dword [edx + 0x3c98]
mulss xmm0, dword [0x1011cce4]
cvttss2si eax, xmm0
push edi
movd xmm0, eax
lea eax, [ebp - 0x98]
cvtdq2ps xmm0, xmm0
push eax
movss dword [edi + 0x260], xmm0
movss xmm1, dword [edi + 0x70]
movss xmm0, dword [edi + 0x1f4]
addss xmm1, xmm1
subss xmm0, dword [edi + 0x1ec]
addss xmm1, dword [edi + 0x58]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss xmm1, dword [edi + 0x74]
addss xmm1, xmm1
movss dword [edi + 0x98], xmm0
movss xmm0, dword [edi + 0x1f8]
subss xmm0, dword [edi + 0x1f0]
addss xmm1, dword [edi + 0x5c]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [edi + 0x9c], xmm0
call fcn.10068ac0
mov ecx, dword [edi + 0x288]
add esp, 8
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [ebp - 0x38]
movss dword [edi + 0x90], xmm0
movss dword [edi + 0x94], xmm1
mov dword [edi + 0xa0], 0x7f7fffff
mov dword [edi + 0xa4], 0x7f7fffff
mov eax, dword [eax + 0x3c94]
mov eax, dword [eax + 0x30]
push dword [eax + 4]
call fcn.1008b8e0
mov ecx, dword [0x1016274c]
push 0
mov eax, dword [ecx + 0x3f04]
mov byte [eax + 0xc5], 1
lea eax, [ebp - 0xc8]
mov edi, dword [ecx + 0x3f04]
push eax
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [edi + 0x288]
call fcn.1008b7b0
mov eax, dword [edi + 0x288]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movss xmm0, dword [eax + ecx*8 - 0xc]
movss xmm1, dword [eax + ecx*8 - 8]
movss xmm2, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 0x10]
mov dword [edi + 0x22c], eax
movss dword [edi + 0x230], xmm0
movss dword [edi + 0x234], xmm1
movss dword [edi + 0x238], xmm2
mov edi, dword [ebp - 0x4c]
mov al, byte [edi + 0x36d]
and al, 5
cmp al, 1
je 0x100667d6
mov eax, dword [ebp - 0x28]
and eax, 0x5000000
mov byte [ebp - 0x2a], 0
cmp eax, 0x1000000
jne 0x10066753
cmp dword [ebp - 0x54], 0x3000000
je 0x10066753
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x19c]
cmp ecx, 2
jl 0x1006671b
mov eax, dword [eax + 0x1a4]
mov eax, dword [eax + ecx*4 - 8]
test eax, eax
je 0x1006671b
movss xmm1, dword [eax + 0x40]
lea ecx, [ebp - 0xc0]
movss xmm0, dword [eax + 0x44]
movss dword [ebp - 0xc0], xmm1
addss xmm1, dword [eax + 0x48]
movss dword [ebp - 0xbc], xmm0
addss xmm0, dword [eax + 0x4c]
lea eax, [ebp - 0x90]
push eax
movss dword [ebp - 0xb8], xmm1
movss xmm1, dword [edi + 0x40]
movss dword [ebp - 0xb4], xmm0
movss xmm0, dword [edi + 0x44]
movss dword [ebp - 0x90], xmm1
addss xmm1, dword [edi + 0x48]
movss dword [ebp - 0x8c], xmm0
addss xmm0, dword [edi + 0x4c]
movss dword [ebp - 0x88], xmm1
movss dword [ebp - 0x84], xmm0
call fcn.1007b3f0
mov byte [ebp - 0x21], al
jmp 0x1006671f
mov byte [ebp - 0x21], 0
mov edx, dword [edi + 0x288]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x10066753
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x288]
cmp dword [eax + 0x18], 0
jle 0x10066753
cmp byte [ebp - 0x21], 0
jne 0x10066753
mov byte [ebp - 0x2a], 1
mov dword [edi + 0x288], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x4274]
test ecx, ecx
jne 0x10066766
mov ecx, dword [eax + 0x4124]
cmp byte [ebp - 0x48], 0
jne 0x10066796
test ecx, ecx
je 0x10066790
mov eax, dword [edi + 0x330]
cmp eax, dword [ecx + 0x330]
je 0x10066796
mov eax, dword [edi + 0x388]
test eax, eax
je 0x10066790
cmp eax, dword [ecx + 0x388]
je 0x10066796
mov byte [ebp - 0x30], 0
jmp 0x1006679a
mov byte [ebp - 0x30], 1
movd xmm0, esi
lea eax, [ebp - 0x20]
push ecx
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
push dword [ebp - 0x3c]
lea eax, [ebp - 0xb0]
push dword [ebp - 0x34]
push dword [ebp - 0x30]
push eax
push edi
call fcn.1007d9a0
add esp, 0x1c
cmp byte [ebp - 0x2a], 0
je 0x100667d6
lea eax, [edi + 0x28c]
mov dword [edi + 0x288], eax
mov ecx, dword [ebp - 0x28]
xorps xmm2, xmm2
movss xmm5, dword [edi + 0x68]
mov edx, ecx
shr edx, 3
not dl
and dl, 1
ucomiss xmm5, xmm2
lahf
test ah, 0x44
jnp 0x100667f9
movaps xmm7, xmm5
jmp 0x1006682f
movss xmm0, dword [edi + 0x70]
mov eax, ecx
movss xmm1, dword [edi + 0x48]
addss xmm0, xmm0
and eax, 0x808
subss xmm1, xmm0
subss xmm1, dword [edi + 0xb8]
cmp eax, 0x800
jne 0x10066828
movss xmm7, dword [edi + 0x58]
jmp 0x1006682b
xorps xmm7, xmm7
maxss xmm7, xmm1
movss xmm4, dword [edi + 0x6c]
ucomiss xmm4, xmm2
lahf
test ah, 0x44
jnp 0x10066842
movaps xmm6, xmm4
jmp 0x10066873
movss xmm0, dword [edi + 0x74]
movss xmm1, dword [edi + 0x4c]
addss xmm0, xmm0
subss xmm1, xmm0
subss xmm1, dword [ebp - 0x50]
subss xmm1, dword [edi + 0xbc]
test dl, dl
je 0x1006686c
movss xmm6, dword [edi + 0x5c]
jmp 0x1006686f
xorps xmm6, xmm6
maxss xmm6, xmm1
movss xmm1, dword [edi + 0x70]
movss xmm2, dword [edi + 0x90]
movss xmm0, dword [edi + 0x1ec]
subss xmm0, xmm2
movss dword [ebp - 0x60], xmm1
maxss xmm1, dword [edi + 0x7c]
movss dword [ebp - 0x30], xmm2
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [edi + 0x20c], xmm2
addss xmm7, xmm2
movss xmm0, dword [edi + 0x94]
movss xmm1, dword [edi + 0x74]
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [edi + 0x1f0]
subss xmm0, dword [ebp - 0x4c]
movss dword [ebp - 0x74], xmm1
maxss xmm1, dword [edi + 0x7c]
movss xmm2, dword [ebp - 0x74]
addss xmm1, xmm0
cvttss2si eax, xmm1
movss xmm1, dword [ebp - 0x60]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm6, xmm0
movss dword [edi + 0x210], xmm0
movss dword [edi + 0x214], xmm7
xorps xmm7, xmm7
ucomiss xmm5, xmm7
movss dword [edi + 0x218], xmm6
movups xmm0, xmmword [edi + 0x20c]
lahf
movups xmmword [edi + 0x21c], xmm0
movss xmm0, dword [edi + 0x40]
movss dword [ebp - 0x54], xmm0
movaps xmm3, xmm0
subss xmm3, dword [ebp - 0x30]
addss xmm3, xmm1
movss dword [edi + 0x23c], xmm3
movss xmm0, dword [edi + 0x44]
movss dword [ebp - 0x60], xmm0
movaps xmm6, xmm0
subss xmm6, dword [ebp - 0x4c]
addss xmm6, xmm2
addss xmm6, dword [ebp - 0x50]
movss dword [edi + 0x240], xmm6
test ah, 0x44
jp 0x10066987
movss xmm5, dword [edi + 0x48]
movaps xmm0, xmm1
addss xmm0, xmm1
subss xmm5, xmm0
subss xmm5, dword [edi + 0xb8]
ucomiss xmm4, xmm7
addss xmm5, xmm3
lahf
movss dword [edi + 0x244], xmm5
test ah, 0x44
jp 0x100669b9
movss xmm4, dword [edi + 0x4c]
movaps xmm0, xmm2
addss xmm0, xmm2
subss xmm4, xmm0
subss xmm4, dword [ebp - 0x50]
subss xmm4, dword [edi + 0xbc]
movaps xmm0, xmm1
mov esi, dword [ebp - 0x38]
addss xmm0, xmm7
addss xmm4, xmm6
cvtps2pd xmm3, xmm1
movss dword [edi + 0x248], xmm4
movss xmm4, dword [ebp - 0x30]
subss xmm0, xmm4
cvtps2pd xmm2, xmm2
movss dword [edi + 0x14c], xmm0
movss xmm0, dword [ebp - 0x54]
cvtps2pd xmm0, xmm0
mov dword [edi + 0x154], 0
mov dword [edi + 0x150], 0
push dword [ebp - 0x68]
addsd xmm3, xmm0
cvtps2pd xmm0, xmm4
push ecx
lea ecx, [edi + 0x178]
subsd xmm3, xmm0
movss xmm0, dword [ebp - 0x60]
cvtps2pd xmm0, xmm0
addsd xmm3, qword [0x10114620]
addsd xmm2, xmm0
movss xmm0, dword [ebp - 0x4c]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movss xmm0, dword [ebp - 0x50]
cvtps2pd xmm0, xmm0
addsd xmm2, xmm0
cvtpd2ps xmm0, xmm3
cvtpd2ps xmm1, xmm2
movss dword [edi + 0x118], xmm0
movss dword [edi + 0x11c], xmm1
movss xmm0, dword [edi + 0x118]
cvtps2pd xmm0, xmm0
subsd xmm3, xmm0
movss xmm0, dword [edi + 0x11c]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm1, xmm3
subsd xmm2, xmm0
movss dword [edi + 0x158], xmm1
cvtpd2ps xmm0, xmm2
movss dword [edi + 0x15c], xmm0
movss xmm1, dword [edi + 0x118]
movss xmm0, dword [edi + 0x11c]
movss dword [edi + 0x108], xmm1
movss dword [edi + 0x10c], xmm0
movss dword [edi + 0x110], xmm1
movss dword [edi + 0x114], xmm0
movss dword [edi + 0x120], xmm1
movss dword [edi + 0x124], xmm0
movss dword [edi + 0x128], xmm1
movss dword [edi + 0x12c], xmm0
mov dword [edi + 0x138], 0
mov dword [edi + 0x13c], 0
mov dword [edi + 0x130], 0
mov dword [edi + 0x134], 0
mov dword [edi + 0x144], 0
mov dword [edi + 0x140], 0
mov byte [edi + 0x148], 0
mov dword [edi + 0x160], 0
mov ax, word [edi + 0x166]
mov word [edi + 0x164], ax
mov byte [edi + 0x16c], 0
movss xmm0, dword [edi + 0x9c]
comiss xmm0, xmm7
seta al
mov byte [edi + 0x16d], al
mov byte [edi + 0x16e], 0
movss xmm0, dword [esi + 0x38a0]
movss dword [esp], xmm0
call fcn.100ad1a0
mov dword [edi + 0x194], 0
lea eax, [edi + 0x19c]
mov dword [edi + 0x198], 0
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10066bb3
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x19c]
call fcn.10085290
lea eax, [edi + 0x19c]
mov dword [eax], 0
lea eax, [edi + 0x264]
mov dword [edi + 0x1a8], eax
mov eax, dword [ebp - 0x44]
mov dword [edi + 0x1ac], 0
mov dword [edi + 0x1b4], 1
test eax, eax
je 0x10066be8
mov eax, dword [eax + 0x1b4]
jmp 0x10066bed
mov eax, 1
mov dword [edi + 0x1b8], eax
mov eax, dword [edi + 0x260]
mov dword [edi + 0x1bc], eax
lea eax, [edi + 0x1c4]
mov dword [edi + 0x1c0], 0xbf800000
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10066c38
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x1c4]
call fcn.10085290
lea eax, [edi + 0x1c4]
mov dword [eax], 0
lea eax, [edi + 0x1d0]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x10066c6d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x1d0]
call fcn.10085290
lea eax, [edi + 0x1d0]
mov dword [eax], 0
mov al, byte [edi + 0xdc]
test al, al
jle 0x10066c85
dec al
mov byte [edi + 0xdc], al
mov al, byte [edi + 0xdd]
test al, al
jle 0x10066c97
dec al
mov byte [edi + 0xdd], al
cmp byte [ebp - 0x48], 0
je 0x10066cae
push edi
call fcn.10073850
push 0
push edi
call fcn.10076a40
add esp, 0xc
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x10066d07
mov ecx, dword [edi + 0x2c]
cmp byte [ecx + 0x46], 0
je 0x10066d07
mov eax, dword [0x1016274c]
mov eax, dword [eax + 0x40e4]
cmp ecx, dword [eax]
je 0x10066d04
mov al, byte [edi + 0x36d]
and al, 5
cmp al, 1
je 0x10066d04
mov byte [ecx + 0x46], 0
test byte [esi + 0x53e8], 0x40
mov byte [esi + 0x4288], 0
je 0x10066cfc
push dword [edi]
push str._viewport__Window__s_PlatformRequestClose_n
call fcn.1006a4f0
add esp, 8
mov eax, dword [ebp - 0x6c]
mov byte [eax], 0
jmp 0x10066d07
mov eax, dword [ebp - 0x6c]
test byte [ebp - 0x28], 1
jne 0x10066d74
test byte [edi + 0x36d], 1
jne 0x10066d74
movss xmm0, dword [ebp - 0xb0]
addss xmm0, dword [edi + 0x7c]
push eax
push dword [ebp - 0x70]
lea eax, [ebp - 0x90]
push eax
movss dword [ebp - 0x90], xmm0
movss xmm0, dword [ebp - 0xac]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [ebp - 0xa8]
subss xmm0, dword [edi + 0x7c]
push edi
movss dword [ebp - 0x88], xmm0
movss xmm0, dword [ebp - 0xa4]
movss dword [ebp - 0x84], xmm0
call fcn.1007e660
add esp, 0x10
xor eax, eax
mov dword [edi + 0x24c], eax
test byte [esi + 8], 0x40
je 0x10066deb
cmp dword [esi + 0x3f14], edi
jne 0x10066dad
mov al, byte [esi + 0x59]
cmp al, byte [esi + 0xd75]
jne 0x10066dad
mov eax, dword [edi + 0x32c]
test dword [eax + 8], 0x200000
jne 0x10066dad
push edi
call fcn.100674d0
add esp, 4
cmp byte [esi + 0x4294], 0
je 0x10066deb
test dword [ebp - 0x28], 0x200000
jne 0x10066deb
mov eax, dword [esi + 0x3f14]
test eax, eax
je 0x10066dd1
cmp dword [eax + 0x32c], edi
je 0x10066deb
cmp edi, dword [edi + 0x32c]
jne 0x10066deb
test dword [edi + 8], 0x20000000
jne 0x10066deb
push edi
call fcn.100676e0
add esp, 4
test byte [edi + 0x36d], 1
je 0x10066e34
mov ecx, dword [esi + 0x3f9c]
mov esi, dword [0x1016274c]
mov edx, dword [edi + 0x394]
mov eax, dword [edi + 0x84]
mov dword [esi + 0x3fb4], eax
mov dword [esi + 0x3fb8], ecx
mov dword [esi + 0x3fbc], edx
movups xmm0, xmmword [edi + 0x398]
movups xmmword [esi + 0x3fc0], xmm0
mov esi, dword [ebp - 0x38]
jmp 0x10066fe1
mov edx, dword [0x1016274c]
movss xmm1, dword [ebp - 0xb0]
movss xmm6, dword [ebp - 0xa8]
movss xmm7, dword [ebp - 0xa4]
movss xmm2, dword [edx + 0x38b8]
movss xmm0, dword [edx + 0x38bc]
subss xmm1, xmm2
movss xmm5, dword [edx + 0xd58]
movaps xmm3, xmm2
movss xmm2, dword [ebp - 0xac]
addss xmm3, xmm6
movaps xmm4, xmm0
subss xmm2, xmm0
addss xmm4, xmm7
comiss xmm5, xmm1
jb 0x10066ee7
movss xmm0, dword [edx + 0xd5c]
comiss xmm0, xmm2
jb 0x10066ee7
comiss xmm3, xmm5
jbe 0x10066ee7
comiss xmm4, xmm0
jbe 0x10066ee7
mov eax, dword [edx + 0x40f0]
movss xmm3, dword [eax + 0xc]
movss xmm2, dword [eax + 8]
movaps xmm0, xmm3
addss xmm0, dword [eax + 0x14]
movaps xmm1, xmm2
addss xmm1, dword [eax + 0x10]
comiss xmm0, dword [ebp - 0xac]
jbe 0x10066ee7
comiss xmm7, xmm3
jbe 0x10066ee7
comiss xmm1, dword [ebp - 0xb0]
jbe 0x10066ee7
comiss xmm6, xmm2
mov dword [ebp - 0x4c], 1
ja 0x10066eee
mov dword [ebp - 0x4c], 0
mov eax, dword [edi + 0x84]
mov ecx, dword [esi + 0x3f9c]
mov dword [edx + 0x3fb4], eax
mov eax, dword [ebp - 0x4c]
mov dword [edx + 0x3fb8], ecx
mov dword [edx + 0x3fbc], eax
movups xmm0, xmmword [ebp - 0xb0]
movups xmmword [edx + 0x3fc0], xmm0
jmp 0x10066fe1
mov ecx, dword [edi + 0x2c]
mov edx, dword [0x1016274c]
test ecx, ecx
je 0x10066f38
mov eax, dword [edx + 0x3ea0]
mov dword [ecx + 0x4c], eax
cmp dword [edx + 0x40ec], ecx
je 0x10066f75
test ecx, ecx
je 0x10066f65
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x40e8], eax
mov eax, dword [edx + 0x3808]
mov dword [edx + 0x40ec], ecx
test eax, eax
je 0x10066f75
push ecx
call eax
add esp, 4
jmp 0x10066f75
mov dword [edx + 0x40e8], 0x3f800000
mov dword [edx + 0x40ec], ecx
mov ecx, dword [0x1016274c]
mov dword [ecx + 0x3f04], edi
mov eax, dword [edi + 0x1b0]
cmp eax, 0xffffffff
je 0x10066f9a
imul eax, eax, 0x1d8
add eax, dword [ecx + 0x4350]
jmp 0x10066f9c
xor eax, eax
mov dword [ecx + 0x4334], eax
mov eax, dword [0x1016274c]
movss xmm0, dword [eax + 0x3c9c]
mulss xmm0, dword [edi + 0x27c]
mov eax, dword [edi + 0x31c]
mulss xmm0, dword [edi + 0x280]
test eax, eax
je 0x10066fd1
mulss xmm0, dword [eax + 0x27c]
movss dword [ecx + 0x3cac], xmm0
movss dword [ecx + 0x3c98], xmm0
mov ecx, dword [ebp - 0x28]
test ecx, 0x1000000
je 0x10066ff7
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x168]
jmp 0x1006703f
mov ecx, dword [edi + 0xfc]
mov eax, dword [edi + 0x104]
push dword [eax + ecx*4 - 4]
push 0
push str.FOCUSSCOPE
call fcn.10074c30
mov ecx, dword [0x1016274c]
add esp, 0xc
mov dword [ebp - 0x60], eax
cmp dword [ecx + 0x3f28], eax
jne 0x1006703c
push 0
push str.FOCUSSCOPE
push 0xb
push eax
call fcn.1006a2d0
mov eax, dword [ebp - 0x60]
add esp, 0x10
mov ecx, dword [ebp - 0x28]
mov dword [edi + 0x168], eax
test ecx, 0x20000000
jne 0x10067068
push 1
lea eax, [edi + 0x204]
push eax
lea eax, [edi + 0x1fc]
push eax
call fcn.1007b770
mov ecx, dword [ebp - 0x28]
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov byte [edi + 0xc5], 0
inc word [edi + 0xd0]
mov dword [esi + 0x3ff0], 0
cmp eax, dword [ebp - 0x5c]
je 0x1006721e
mov al, byte [edi + 0x36d]
and al, 5
cmp al, 1
jne 0x100670b6
mov eax, dword [edi + 0x258]
cmp eax, dword [esi + 0x3ea0]
jne 0x100670af
mov byte [edi + 0xe5], 1
jmp 0x100670b6
mov byte [edi + 0xe4], 1
test ecx, 0x1000000
je 0x1006717f
test cl, 0x40
jne 0x10067146
cmp byte [edi + 0xdc], 0
jg 0x10067146
cmp byte [edi + 0xdd], 0
jg 0x10067146
test ecx, 0x800000
je 0x1006710e
cmp byte [esi + 0x4164], 0
je 0x1006710e
mov eax, dword [esi + 0x4124]
test eax, eax
je 0x1006710e
mov eax, dword [eax + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x1006710e
mov al, 1
jmp 0x10067110
xor al, al
cmp byte [esi + 0x53b4], 0
jne 0x10067146
test al, al
jne 0x10067146
movss xmm0, dword [edi + 0x1dc]
comiss xmm0, dword [edi + 0x1e4]
jae 0x1006713f
movss xmm0, dword [edi + 0x1e0]
comiss xmm0, dword [edi + 0x1e8]
jb 0x10067146
mov byte [edi + 0xe4], 1
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x1006717f
cmp byte [eax + 0xc6], 0
jne 0x1006715f
cmp byte [eax + 0xe4], 0
jle 0x10067166
mov byte [edi + 0xe4], 1
cmp byte [eax + 0xc6], 0
jne 0x10067178
cmp byte [eax + 0xe5], 0
jle 0x1006717f
mov byte [edi + 0xe5], 1
xorps xmm0, xmm0
comiss xmm0, dword [esi + 0x3854]
jb 0x10067192
mov byte [edi + 0xe4], 1
cmp byte [edi + 0xe4], 0
jg 0x100671b2
cmp byte [edi + 0xe5], 0
jg 0x100671b2
xor cl, cl
cmp byte [edi + 0xe6], cl
jg 0x100671b4
xor al, al
jmp 0x100671b6
mov cl, 1
mov al, 1
mov byte [edi + 0xca], al
mov al, byte [edi + 0xe7]
test al, al
jle 0x100671d5
dec al
mov byte [edi + 0xe7], al
or dword [edi + 8], 0xc0200
xor al, al
cmp byte [edi + 0xc6], al
jne 0x100671eb
cmp byte [edi + 0xc3], al
je 0x100671eb
test cl, cl
je 0x1006720f
cmp byte [edi + 0xdc], 0
jg 0x1006720f
cmp byte [edi + 0xdd], 0
jg 0x1006720f
cmp byte [edi + 0xe5], 0
jg 0x1006720f
mov byte [edi + 0xc8], 1
jmp 0x1006721e
mov byte [edi + 0xc8], al
xor eax, eax
mov word [edi + 0x166], ax
cmp byte [edi + 0xc8], 0
mov ecx, dword [ebp - 4]
sete al
xor ecx, ebp
pop edi
pop esi
call fcn.100d37d3
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret