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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10121f90
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x140
push esi
push edi
mov edi, dword [0x10168418]
mov esi, edi
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0x40], esi
mov eax, dword [esi + 0x1ba4]
mov byte [eax + 0x8c], 1
mov eax, dword [esi + 0x1ba4]
mov dword [ebp - 0x48], eax
cmp byte [eax + 0x8f], 0
jne 0x1006f897
mov ecx, dword [ebx + 0x14]
mov edx, ecx
mov dword [ebp - 0x3c], ecx
shr dword [ebp - 0x3c], 0xe
and byte [ebp - 0x3c], 1
mov dword [ebp - 0xa0], ecx
shr dword [ebp - 0xa0], 0xf
and byte [ebp - 0xa0], 1
shr ecx, 0x10
not cl
shr edx, 0x1a
and ecx, 0xffffff01
and edx, 0xffffff01
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebx + 0x14]
shr ecx, 0x12
and ecx, 0xffffff01
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x7c], ecx
test dl, dl
je 0x1006f60d
call fcn.1004f420
mov edi, dword [0x10168418]
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0xc4]
xor edx, edx
mov eax, dword [eax + 0xcc]
push dword [eax + ecx*4 - 4]
mov ecx, dword [ebp - 0xcc]
call fcn.10043080
add esp, 4
mov dword [ebp - 0x30], eax
cmp dword [edi + 0x1bdc], eax
jne 0x1006f63e
mov dword [edi + 0x1be0], eax
cmp dword [edi + 0x1c14], eax
jne 0x1006f64d
mov byte [edi + 0x1c18], 1
mov eax, dword [ebp - 0xcc]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x1006f676
nop word [eax + eax]
mov dl, byte [ecx]
test dl, dl
je 0x1006f676
cmp dl, 0x23
jne 0x1006f670
cmp byte [ecx + 1], dl
je 0x1006f676
inc ecx
cmp ecx, 0xffffffff
jb 0x1006f660
movss xmm1, dword [0x10151edc]
movss xmm0, dword [edi + 0x1938]
movss dword [ebp - 0xc8], xmm1
cmp eax, ecx
jne 0x1006f69f
xorps xmm3, xmm3
movss dword [ebp - 0xf0], xmm3
jmp 0x1006f6e7
push ecx
push ecx
push eax
push ecx
mov ecx, dword [edi + 0x1934]
lea eax, [ebp - 0x78]
mov dword [esp], 0xbf800000
movaps xmm3, xmm1
push eax
movaps xmm2, xmm0
call fcn.10064660
movss xmm0, dword [ebp - 0x78]
xorps xmm3, xmm3
addss xmm0, dword [0x10151ca8]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0x74]
cmp byte [ebp - 0x38], 0
je 0x1006f6fd
movss xmm0, dword [esi + 0x1938]
mulss xmm0, dword [0x10151da8]
test byte [edi + 0x1c88], 1
movss xmm1, dword [esi + 0x155c]
mov eax, dword [edi + 0x1ba4]
movaps xmm2, xmm1
addss xmm2, xmm1
addss xmm2, xmm0
je 0x1006f729
movss xmm0, dword [edi + 0x1c8c]
jmp 0x1006f731
movss xmm0, dword [eax + 0x1b4]
comiss xmm3, xmm0
jbe 0x1006f770
cmp dword [eax + 0x198], 0
movss xmm1, dword [eax + 0x24c]
jne 0x1006f750
cmp dword [edi + 0x1fbc], 0
je 0x1006f758
movss xmm1, dword [eax + 0x21c]
subss xmm1, dword [eax + 0xd0]
addss xmm1, xmm0
movss xmm0, dword [0x10151cb0]
maxss xmm0, xmm1
cvttss2si eax, xmm0
lea ecx, [ebp - 0x78]
movd xmm1, eax
mov eax, dword [ebx + 0x10]
cvtdq2ps xmm1, xmm1
push dword [eax + 4]
push dword [eax]
call fcn.1004f340
movss xmm1, dword [ebp - 0xf0]
xorps xmm0, xmm0
add esp, 8
comiss xmm1, xmm0
jbe 0x1006f7ab
movaps xmm2, xmm1
addss xmm2, dword [esi + 0x1570]
jmp 0x1006f7ae
xorps xmm2, xmm2
cmp byte [ebp - 0x38], 0
mov eax, dword [ebp - 0x48]
movss xmm5, dword [ebp - 0x78]
addss xmm2, xmm5
movss dword [ebp - 0xb4], xmm5
mov dword [ebp - 0x80], eax
movss xmm4, dword [eax + 0xd4]
movss xmm3, dword [eax + 0xd0]
movaps xmm0, xmm4
addss xmm0, dword [ebp - 0x74]
movaps xmm1, xmm3
movss dword [ebp - 0xc4], xmm3
addss xmm1, xmm5
movss dword [ebp - 0xc0], xmm4
addss xmm2, xmm3
movss dword [ebp - 0xb0], xmm3
movss dword [ebp - 0xac], xmm4
movss dword [ebp - 0xb8], xmm0
movaps xmm0, xmm4
addss xmm0, dword [ebp - 0x74]
movss dword [ebp - 0xbc], xmm1
movss dword [ebp - 0xa8], xmm2
movss dword [ebp - 0xa4], xmm0
je 0x1006fa86
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0xc4]
push 1
push eax
lea ecx, [ebp - 0xb0]
call fcn.1004ee30
add esp, 8
test al, al
jne 0x1006f8ac
movss xmm0, dword [ebp - 0xa8]
lea ecx, [ebp - 0x78]
subss xmm0, dword [ebp - 0xb0]
movss xmm1, dword [esi + 0x155c]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0xa4]
subss xmm0, dword [ebp - 0xac]
movss dword [ebp - 0x74], xmm0
call fcn.1004ed00
call fcn.1004f550
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov esi, dword [0x10168418]
lea eax, [ebp - 0xe8]
push eax
mov dword [ebp - 0xe8], 3
movups xmm0, xmmword [esi + 0x1614]
lea ecx, [esi + 0x1c9c]
movups xmmword [ebp - 0xe4], xmm0
call fcn.10055430
mov edi, dword [ebp - 0x40]
lea eax, [ebp - 0x9c]
push eax
mov dword [ebp - 0x9c], 6
movups xmm0, xmmword [edi + 0x1654]
movups xmmword [esi + 0x1614], xmm0
mov esi, dword [0x10168418]
movss xmm0, dword [edi + 0x1560]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [esi + 0x1548]
lea ecx, [esi + 0x1ca8]
movss dword [ebp - 0x98], xmm0
call fcn.10055370
movss xmm0, dword [ebp - 0x20]
lea eax, [ebp - 0x9c]
movss dword [esi + 0x1548], xmm0
mov esi, dword [0x10168418]
movss xmm0, dword [edi + 0x1564]
movss dword [ebp - 0x20], xmm0
push eax
movss xmm0, dword [esi + 0x154c]
lea ecx, [esi + 0x1ca8]
mov dword [ebp - 0x9c], 7
movss dword [ebp - 0x98], xmm0
call fcn.10055370
movss xmm0, dword [ebp - 0x20]
lea eax, [ebp - 0x98]
movss xmm1, dword [ebp - 0xbc]
subss xmm1, dword [ebp - 0xc4]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xcc]
movss dword [esi + 0x154c], xmm0
movss xmm0, dword [ebp - 0xb8]
subss xmm0, dword [ebp - 0xc0]
push 4
push 1
push eax
movss dword [ebp - 0x98], xmm1
movss dword [ebp - 0x94], xmm0
call fcn.100493d0
add esp, 0xc
mov byte [ebp - 0x4f], al
mov ecx, 2
call fcn.10043bc0
mov esi, dword [0x10168418]
mov ecx, dword [esi + 0x1c9c]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x1ca4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
shl eax, 4
movups xmmword [eax + esi + 0x15e4], xmm0
dec dword [esi + 0x1c9c]
cmp byte [ebp - 0x4f], 0
jne 0x1006fa1d
call fcn.100498b0
jmp 0x1006f892
mov esi, edi
mov edi, dword [esi + 0x1ba4]
mov dword [ebp - 0x80], edi
movsx ecx, word [edi + 0x14a]
mov eax, dword [edi + 0x144]
bts ecx, eax
mov word [edi + 0x14a], cx
movss xmm0, dword [esi + 0x1558]
addss xmm0, dword [edi + 0xd0]
movss dword [edi + 0xd0], xmm0
movss xmm0, dword [esi + 0x155c]
addss xmm0, dword [edi + 0xd4]
movss dword [edi + 0xd4], xmm0
movss xmm0, dword [ebp - 0x78]
subss xmm0, dword [edi + 0x80]
movss dword [ebp - 0xb4], xmm0
jmp 0x1006fadc
movss xmm1, dword [esi + 0x155c]
subss xmm2, xmm3
subss xmm0, xmm4
lea ecx, [ebp - 0x98]
movss dword [ebp - 0x98], xmm2
movss dword [ebp - 0x94], xmm0
call fcn.1004ed00
test dword [ebx + 0x14], 0x10000000
jne 0x1006fadc
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0xc4]
push 1
push eax
lea ecx, [ebp - 0xb0]
call fcn.1004ee30
add esp, 8
test al, al
je 0x1006f897
mov edx, dword [ebp - 0x30]
lea ecx, [ebp - 0xc4]
call fcn.10045490
mov dl, al
mov byte [ebp - 0x4d], dl
test dl, dl
je 0x1006fafd
mov dword [esi + 0x1f28], 1
mov edi, dword [0x10168418]
xor ecx, ecx
mov eax, dword [ebp - 0x30]
add edi, 0x2044
cmp dword [edi], eax
mov eax, dword [ebp - 0x48]
cmovne edi, ecx
mov dword [ebp - 0x60], edi
mov eax, dword [eax + 0x120]
mov ecx, eax
shr ecx, 8
shr eax, 9
and ecx, 0xffffff01
and eax, 0xffffff01
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x8c], eax
test dl, dl
je 0x1006fb4c
cmp byte [esi + 0x3e0], 0
mov byte [ebp - 0x13], 1
jne 0x1006fb50
mov byte [ebp - 0x13], 0
mov ecx, dword [esi + 0x1bdc]
mov eax, dword [ebp - 0x30]
cmp ecx, eax
je 0x1006fb7c
cmp dword [esi + 0x1d20], eax
je 0x1006fb76
cmp dword [esi + 0x1d14], eax
jne 0x1006fb7c
cmp dword [esi + 0x1d38], 2
jne 0x1006fb7c
mov byte [ebp - 0x12], 1
jmp 0x1006fb80
mov byte [ebp - 0x12], 0
mov eax, dword [ebp - 0x38]
test al, al
je 0x1006fbc8
test edi, edi
je 0x1006fbc8
test ecx, ecx
jne 0x1006fbc8
mov eax, dword [ebp - 0x80]
xor edx, edx
mov ecx, dword [eax + 0xc4]
mov eax, dword [eax + 0xcc]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.10043080
add esp, 4
cmp dword [esi + 0x1c14], eax
jne 0x1006fbbf
mov byte [ebp - 0x19], 1
jmp 0x1006fbd8
mov ecx, dword [esi + 0x1bdc]
mov eax, dword [ebp - 0x38]
mov byte [ebp - 0x19], 0
test al, al
je 0x1006fc08
mov byte [ebp - 0x19], 0
test edi, edi
je 0x1006fc08
mov eax, dword [ebp - 0x80]
mov ecx, str.SCROLLY
mov edx, dword [eax + 0xc4]
mov eax, dword [eax + 0xcc]
push dword [eax + edx*4 - 4]
xor edx, edx
call fcn.10043080
mov ecx, dword [esi + 0x1bdc]
add esp, 4
cmp ecx, eax
jne 0x1006fc08
mov dl, 1
jmp 0x1006fc0a
xor dl, dl
mov ah, byte [ebp - 0x12]
mov byte [ebp - 0x26], dl
mov byte [ebp - 0x41], 0
cmp ecx, dword [ebp - 0x30]
je 0x1006fc2f
test byte [ebx + 0x14], 0x10
jne 0x1006fc23
test ah, ah
je 0x1006fc2f
cmp byte [ebp - 0x38], 0
jne 0x1006fc2f
mov byte [ebp - 0x58], 1
jmp 0x1006fc4c
cmp byte [ebp - 0x38], 0
mov byte [ebp - 0x58], 0
je 0x1006fc4c
mov esi, dword [ebp - 0x80]
movss xmm0, dword [esi + 0x5c]
mov esi, dword [ebp - 0x40]
movss dword [ebp - 0xc8], xmm0
test edi, edi
je 0x1006fc5e
mov al, byte [ebp - 0x38]
xor al, 1
cmp byte [edi + 0x53], al
je 0x1006fc5e
mov al, 1
jmp 0x1006fc60
xor al, al
cmp byte [ebp - 0x13], 0
mov byte [ebp - 0x31], al
mov dword [ebp - 0x4c], 1
jne 0x1006fc93
cmp byte [ebp - 0x19], 0
jne 0x1006fc93
test ah, ah
jne 0x1006fc93
cmp byte [ebp - 0x54], ah
jne 0x1006fc93
cmp byte [ebp - 0x8c], ah
jne 0x1006fc93
mov byte [ebp - 0x19], ah
test dl, dl
jne 0x1006fc97
mov byte [ebp - 0x1a], dl
jmp 0x1006fca0
mov byte [ebp - 0x19], 1
mov byte [ebp - 0x1a], 1
cmp ecx, dword [ebp - 0x30]
jne 0x1006fca8
test al, al
je 0x1006feb0
mov ecx, dword [ebx + 8]
lea edi, [esi + 0x2044]
mov dword [ebp - 0x60], edi
mov dword [edi + 0xe68], 0xbe99999a
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1006fcc1
mov eax, dword [edi + 0x28]
sub ecx, edx
lea edx, [ecx + 1]
mov dword [ebp - 0x24], edx
cmp edx, eax
jle 0x1006fd02
test eax, eax
je 0x1006fcea
cdq
sub eax, edx
mov edx, dword [ebp - 0x24]
mov ecx, eax
sar ecx, 1
add ecx, dword [edi + 0x28]
jmp 0x1006fcef
mov ecx, 8
cmp ecx, edx
mov eax, edx
cmovg eax, ecx
lea ecx, [edi + 0x24]
push eax
call fcn.10055870
mov edx, dword [ebp - 0x24]
push edx
push dword [ebx + 8]
mov dword [edi + 0x24], edx
push dword [edi + 0x2c]
call fcn.100f7220
mov edx, dword [ebx + 0xc]
add esp, 0xc
mov eax, dword [edi + 0x10]
inc edx
mov dword [ebp - 0x24], edx
cmp edx, eax
jle 0x1006fd4d
test eax, eax
je 0x1006fd35
cdq
sub eax, edx
mov edx, dword [ebp - 0x24]
mov ecx, eax
sar ecx, 1
add ecx, dword [edi + 0x10]
jmp 0x1006fd3a
mov ecx, 8
cmp ecx, edx
mov eax, edx
cmovg eax, ecx
lea ecx, [edi + 0xc]
push eax
call fcn.100558e0
mov edx, dword [ebp - 0x24]
lea eax, [edi + 0x18]
mov dword [edi + 0xc], edx
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x1006fd76
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 + 0x18]
call fcn.10055870
lea eax, [edi + 0x18]
mov esi, dword [ebx + 0xc]
mov dword [eax], 0
mov ecx, dword [edi + 0x14]
mov edx, ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x18], ecx
lea ecx, [ecx + esi*2]
mov byte [edi + 0x30], 0
mov esi, dword [ebp - 0x40]
add ecx, 0xfffffffe
mov dword [ebp - 0x5c], eax
cmp edx, ecx
jae 0x1006fde8
mov edi, dword [ebx + 0xc]
mov esi, eax
cmp byte [esi], 0
je 0x1006fddf
push 0
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.10043310
mov edx, dword [ebp - 0x18]
add esi, eax
mov eax, dword [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x5c], esi
test eax, eax
je 0x1006fddf
mov ecx, dword [ebp - 0x70]
mov word [edx], ax
lea eax, [edi - 1]
add edx, 2
mov dword [ebp - 0x18], edx
lea eax, [ecx + eax*2]
cmp edx, eax
jb 0x1006fda6
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebx + 8]
xor ecx, ecx
mov word [edx], cx
sub edx, dword [ebp - 0x70]
sar edx, 1
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [edi + 4], edx
cmp dword [edi], eax
jne 0x1006fe2e
cmp byte [ebp - 0x31], cl
jne 0x1006fe2e
cmp dword [edi + 0x3c], edx
mov ecx, edx
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], edx
mov dword [edi + 0x3c], ecx
mov ecx, edx
cmovl ecx, dword [edi + 0x40]
cmp dword [edi + 0x44], edx
mov dword [edi + 0x40], ecx
cmovl edx, dword [edi + 0x44]
mov dword [edi + 0x44], edx
mov edx, dword [ebp - 0x38]
jmp 0x1006fe86
mov edx, dword [ebp - 0x38]
mov dword [edi], eax
mov al, dl
xor al, 1
mov dword [edi + 0x38], ecx
mov dword [edi + 0xe5a], 0x630000
mov dword [edi + 0xe60], ecx
mov dword [edi + 0xe64], 0x3e7
mov dword [edi + 0x40], ecx
mov dword [edi + 0x44], ecx
mov dword [edi + 0x3c], ecx
mov word [edi + 0x51], 1
mov dword [edi + 0x58], ecx
mov byte [edi + 0x50], cl
mov byte [edi + 0x53], al
mov byte [edi + 0x48], cl
mov dword [edi + 0x4c], ecx
test dl, dl
jne 0x1006fe86
mov eax, dword [ebp - 0x58]
cmp byte [ebp - 0x54], cl
movzx eax, al
cmovne eax, dword [ebp - 0x4c]
mov dword [ebp - 0x58], eax
test dword [ebx + 0x14], 0x2000
je 0x1006fe93
mov byte [edi + 0x48], 1
test dl, dl
jne 0x1006feb0
cmp byte [ebp - 0x8c], dl
jne 0x1006feac
cmp byte [ebp - 0x13], dl
je 0x1006feb0
cmp byte [esi + 0x100], dl
je 0x1006feb0
mov byte [ebp - 0x58], 1
mov ecx, dword [ebp - 0x30]
cmp dword [esi + 0x1bdc], ecx
je 0x1006ff5c
cmp byte [ebp - 0x19], 0
je 0x1006ff54
mov edx, dword [ebp - 0x48]
call fcn.10045240
call fcn.10050cb0
mov ecx, edx
call fcn.1004e490
mov eax, dword [esi + 0x1bf0]
mov edx, dword [ebp - 0x38]
or eax, 3
mov dword [esi + 0x1bf0], eax
test dl, dl
jne 0x1006fef9
test byte [ebx + 0x14], 0x80
je 0x1006ff02
or eax, 0xc
mov dword [esi + 0x1bf0], eax
mov eax, dword [esi + 0x1bf8]
or dword [esi + 0x1bf4], 2
or eax, 0x180
mov ecx, dword [esi + 0x1bfc]
mov dword [esi + 0x1bf8], eax
mov dword [esi + 0x1bfc], ecx
test dl, dl
je 0x1006ff39
or eax, 0x60
mov dword [esi + 0x1bfc], ecx
mov dword [esi + 0x1bf8], eax
test dword [ebx + 0x14], 0x440
je 0x1006ff51
or eax, 1
mov dword [esi + 0x1bfc], ecx
mov dword [esi + 0x1bf8], eax
mov ecx, dword [ebp - 0x30]
cmp dword [esi + 0x1bdc], ecx
jne 0x1006ff8d
test edi, edi
jne 0x1006ff68
call fcn.10045310
mov ecx, dword [ebp - 0x30]
cmp dword [esi + 0x1bdc], ecx
jne 0x1006ff8d
cmp byte [esi + 0x3e0], 0
je 0x1006ff97
cmp byte [ebp - 0x1a], 0
jne 0x1006ff97
cmp byte [ebp - 0x19], 0
jne 0x1006ff97
mov byte [ebp - 0x41], 1
mov dl, 1
jmp 0x1006ff9d
test edi, edi
je 0x1006ff9b
cmp byte [ebp - 0x26], 0
je 0x1006ff9b
mov dl, 1
jmp 0x1006ff9d
xor dl, dl
mov byte [ebp - 0x25], dl
test edi, edi
je 0x1006ffb7
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x1006ffb7
test dl, dl
je 0x1006ffb7
mov edx, 1
jmp 0x1006ffb9
xor dl, dl
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x68], edx
mov byte [ebp - 0x4e], dl
mov byte [ebp - 0x4f], 0
mov byte [ebp - 0x31], 0
test al, al
je 0x100700c6
test edi, edi
je 0x100700c6
cmp byte [ebp - 0x25], 0
jne 0x1006ffe8
test dl, dl
je 0x100700d0
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x10]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, eax
jle 0x1007001f
test eax, eax
je 0x10070006
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, dword [edi + 0x10]
jmp 0x1007000b
mov ecx, 8
mov eax, dword [ebp - 0x24]
cmp ecx, eax
cmovg eax, ecx
lea ecx, [edi + 0xc]
push eax
call fcn.100558e0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebx + 8]
mov dword [edi + 0xc], ecx
dec ecx
mov edx, dword [edi + 0x14]
mov esi, edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], edx
lea ecx, [esi + ecx*2]
cmp esi, ecx
mov dword [ebp - 0x54], ecx
mov esi, dword [ebp - 0x40]
jae 0x1007007a
mov esi, eax
cmp byte [esi], 0
je 0x10070074
push 0
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.10043310
mov edx, dword [ebp - 0x18]
add esi, eax
mov eax, dword [ebp - 0x20]
add esp, 4
mov dword [ebp - 0x5c], esi
test eax, eax
je 0x10070074
mov word [edx], ax
add edx, 2
mov dword [ebp - 0x18], edx
cmp edx, dword [ebp - 0x54]
jb 0x10070043
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebx + 8]
xor ecx, ecx
mov word [edx], cx
sub edx, dword [ebp - 0x24]
sar edx, 1
cmp dword [edi + 0x3c], edx
mov ecx, edx
mov dword [edi + 4], edx
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], edx
mov dword [edi + 0x3c], ecx
mov ecx, edx
cmovl ecx, dword [edi + 0x40]
cmp dword [edi + 0x44], edx
mov dword [edi + 8], eax
cmovl edx, dword [edi + 0x44]
movzx eax, byte [ebp - 0x4e]
cmp ecx, edx
mov dword [edi + 0x44], edx
mov edx, 0
cmovne edx, eax
mov dword [edi + 0x40], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x68], edx
cmp byte [ebp - 0x25], 0
jne 0x100700d8
test dl, dl
jne 0x100700d8
cmp dword [esi + 0x1bdc], ecx
jne 0x100700e9
test al, al
jne 0x100700e9
test edi, edi
je 0x100700e9
cmp byte [edi + 0x30], al
je 0x100700e9
mov al, 1
jmp 0x100700eb
xor al, al
cmp dword [ebp - 0x6c], 0
mov byte [ebp - 0x4e], al
je 0x10070109
test al, al
je 0x100700fd
mov eax, dword [edi + 0x20]
jmp 0x10070100
mov eax, dword [ebx + 8]
cmp byte [eax], 0
jne 0x10070109
mov al, 1
jmp 0x1007010b
xor al, al
cmp byte [ebp - 0xa0], 0
mov byte [ebp - 0x27], al
je 0x100701a3
test al, al
jne 0x100701a3
mov edx, dword [esi + 0x1934]
cmp dword [edx + 0x14], 0x2a
ja 0x10070134
mov eax, dword [edx + 0x2c]
jmp 0x10070153
mov eax, dword [edx + 0x1c]
mov ecx, 0xffff
movzx eax, word [eax + 0x54]
cmp ax, cx
jne 0x1007014a
mov eax, dword [edx + 0x2c]
jmp 0x10070153
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x28]
lea eax, [eax + ecx*8]
mov dword [ebp - 0x18], eax
lea ecx, [esi + 0x2ec0]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x1934]
mov eax, dword [eax + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [esi + 0x1934]
mov eax, dword [eax + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esi + 0x1934]
mov eax, dword [eax + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [esi + 0x1934]
mov eax, dword [eax + 0x30]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x2c], eax
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
call fcn.1004e6b0
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x5c], 0
cmp dword [esi + 0x1bdc], ecx
jne 0x1007059a
mov eax, dword [edi + 8]
mov edx, dword [ebx + 0x14]
mov byte [edi + 0xe6e], 0
mov dword [edi + 0xe70], edx
mov dword [edi + 0xe74], 0
mov dword [edi + 0xe78], 0
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x34], eax
cmp byte [esi + 0xf0], 0
mov dword [esi + 0x320c], 1
sete al
cmp byte [ebp - 0x38], 0
mov byte [esi + 0x1be9], al
movss xmm7, dword [esi + 0xe8]
subss xmm7, dword [ebp - 0xc4]
subss xmm7, dword [esi + 0x1558]
addss xmm7, dword [edi + 0x38]
je 0x1007023b
mov eax, dword [ebp - 0x80]
movss xmm2, dword [esi + 0xec]
subss xmm2, dword [eax + 0xd4]
jmp 0x1007024b
movss xmm2, dword [esi + 0x1938]
mulss xmm2, dword [0x10151c6c]
cmp byte [ebp - 0x58], 0
mov al, byte [esi + 0xb1]
mov byte [ebp - 0x13], al
jne 0x100703cd
mov cl, byte [ebp - 0x4d]
test cl, cl
je 0x10070275
test al, al
jne 0x100702e0
cmp byte [esi + 0x3e5], al
jne 0x100703cd
cmp byte [esi + 0x3e0], 0
je 0x1007033a
cmp byte [edi + 0xe6d], 0
jne 0x1007033a
test cl, cl
je 0x100703eb
cmp byte [edi + 0x53], 0
je 0x100702b7
push 0
mov edx, edi
lea ecx, [ebp - 0xec]
call fcn.1006d830
movss xmm2, dword [ebp - 0xe0]
add esp, 4
movaps xmm1, xmm7
mov ecx, edi
call fcn.1006db20
mov edx, dword [ebx + 0x14]
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov byte [edi + 0x52], 0
mov dword [edi + 0xe68], 0xbe99999a
jmp 0x100703e8
cmp byte [esi + 0x3e5], 0
je 0x10070275
push 0x20000c
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1006df50
add esp, 4
mov byte [edi + 0xe6c], 1
lea edx, [edi + 0x3c]
mov dword [edi + 0xe68], 0xbe99999a
mov ecx, edi
push 0x60000d
call fcn.1006df50
mov esi, dword [ebp - 0x40]
add esp, 4
mov edx, dword [ebx + 0x14]
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
jmp 0x100703e8
cmp byte [esi + 0xf0], 0
je 0x100703eb
cmp byte [edi + 0xe6d], 0
jne 0x100703f4
movss xmm0, dword [esi + 0x378]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10070379
movss xmm0, dword [esi + 0x37c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100703eb
cmp byte [edi + 0x53], 0
je 0x10070399
push 0
mov edx, edi
lea ecx, [ebp - 0xec]
call fcn.1006d830
movss xmm2, dword [ebp - 0xe0]
add esp, 4
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x100703a7
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x40], eax
movaps xmm1, xmm7
mov ecx, edi
call fcn.1006db20
mov edx, dword [ebx + 0x14]
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0xe68], 0xbe99999a
mov byte [edi + 0xe6c], 1
jmp 0x100703e8
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
mov byte [edi + 0xe6d], 1
mov al, byte [ebp - 0x13]
cmp byte [edi + 0xe6d], 0
je 0x10070404
cmp byte [esi + 0xf0], 0
jne 0x10070404
mov byte [edi + 0xe6d], 0
cmp byte [esi + 0x100], 0
je 0x10070416
cmp byte [esi + 0x102], 0
je 0x10070423
test al, al
je 0x10070429
cmp byte [esi + 0x103], 0
je 0x10070429
mov byte [ebp - 0x11], 1
jmp 0x1007042d
mov byte [ebp - 0x11], 0
test edx, 0x400
je 0x1007061d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x1007061d
call fcn.10049280
mov ecx, dword [ebp - 0x3c]
test al, al
mov al, byte [ebp - 0x11]
je 0x100704d5
test al, al
jne 0x100704d5
cmp byte [esi + 0x101], al
jne 0x100704d5
test cl, cl
jne 0x100704d5
mov ecx, dword [esi + 0x1518]
mov eax, dword [esi + 0x1510]
lea edx, [ecx + eax*2]
cmp ecx, edx
jae 0x10070490
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
cmp ax, 9
je 0x100704cf
cmp ecx, edx
jb 0x10070480
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0x24]
push 2
sub esp, 8
mov dword [ebp - 0x24], 9
call fcn.1006f390
add esp, 0xc
test al, al
je 0x100704cf
push dword [ebp - 0x24]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1006df50
add esp, 4
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mov ecx, dword [ebp - 0x3c]
mov al, byte [ebp - 0x11]
mov edx, dword [ebx + 0x14]
cmp dword [esi + 0x1510], 0
jle 0x1007059a
test al, al
jne 0x10070562
test cl, cl
jne 0x10070562
cmp byte [ebp - 0x12], cl
jne 0x10070562
xor ecx, ecx
mov dword [ebp - 0x18], ecx
nop word [eax + eax]
mov eax, dword [esi + 0x1518]
movzx eax, word [eax + ecx*2]
mov dword [ebp - 0x24], eax
cmp eax, 9
jne 0x1007051b
cmp byte [esi + 0x101], 0
jne 0x10070553
push 2
sub esp, 8
lea ecx, [ebp - 0x24]
call fcn.1006f390
add esp, 0xc
test al, al
je 0x10070550
push dword [ebp - 0x24]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1006df50
add esp, 4
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebx + 0x14]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [esi + 0x1510]
jl 0x10070500
mov ecx, dword [esi + 0x1514]
lea eax, [esi + 0x1510]
test ecx, ecx
jns 0x10070594
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, [esi + 0x1510]
call fcn.100558e0
lea eax, [esi + 0x1510]
mov dword [eax], 0
mov eax, dword [ebp - 0x30]
xor cl, cl
mov byte [ebp - 0x11], cl
cmp dword [esi + 0x1bdc], eax
jne 0x100716fb
cmp byte [esi + 0x1be8], cl
jne 0x10070f81
cmp byte [ebp - 0x41], cl
jne 0x10070f81
movss xmm0, dword [ebp - 0x74]
subss xmm0, dword [esi + 0x155c]
mov ecx, dword [ebp - 0x4c]
divss xmm0, dword [esi + 0x1938]
cvttss2si eax, xmm0
cmp eax, 1
cmovge ecx, eax
xor eax, eax
mov dword [edi + 0x4c], ecx
cmp byte [esi + 0x101], al
mov dword [ebp - 0x4c], ecx
mov ecx, 0x400000
cmovne eax, ecx
mov dword [ebp - 0x2c], eax
mov al, byte [esi + 0xb1]
mov byte [ebp - 0x82], al
test al, al
je 0x10070628
cmp dword [esi + 0x380], 0xa
jne 0x10070628
mov byte [ebp - 0x26], 1
jmp 0x10070630
mov al, byte [ebp - 0x11]
mov ecx, dword [ebp - 0x3c]
jmp 0x100704d8
mov byte [ebp - 0x26], 0
test al, al
je 0x10070655
cmp byte [esi + 0x103], 0
mov al, byte [esi + 0x102]
mov byte [ebp - 0x19], al
je 0x10070662
cmp byte [esi + 0x100], 0
jne 0x10070662
test al, al
jne 0x10070662
mov byte [ebp - 0x13], 1
jmp 0x10070666
mov al, byte [esi + 0x100]
mov byte [ebp - 0x19], al
mov byte [ebp - 0x26], 0
mov byte [ebp - 0x13], 0
cmp byte [esi + 0xb1], 0
mov ecx, dword [esi + 0x380]
je 0x1007067a
cmp ecx, 8
jmp 0x1007067d
cmp ecx, 1
sete al
mov byte [ebp - 0x12], al
test al, al
je 0x100706a7
mov eax, dword [0x10168418]
mov eax, dword [eax + 0x80]
test eax, eax
js 0x100706a7
mov ecx, eax
call fcn.10049280
test al, al
jne 0x100706c1
mov ecx, dword [esi + 0x380]
cmp ecx, 2
jne 0x100706e4
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x100706e4
call fcn.10049280
test al, al
je 0x100706e4
cmp byte [ebp - 0x3c], 0
jne 0x100706e4
cmp byte [ebp - 0xa0], 0
jne 0x100706e4
cmp byte [ebp - 0x38], 0
je 0x100706de
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x100706e4
mov byte [ebp - 0x1a], 1
jmp 0x100706e8
mov byte [ebp - 0x1a], 0
cmp byte [ebp - 0x12], 0
je 0x10070703
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x78]
test ecx, ecx
js 0x10070703
call fcn.10049280
test al, al
jne 0x10070721
cmp dword [esi + 0x380], 1
jne 0x10070741
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x10070741
call fcn.10049280
test al, al
je 0x10070741
cmp byte [ebp - 0xa0], 0
jne 0x10070741
cmp byte [ebp - 0x38], 0
je 0x10070738
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x10070741
mov byte [ebp - 0x81], 1
jmp 0x10070748
mov byte [ebp - 0x81], 0
cmp byte [ebp - 0x12], 0
je 0x10070763
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x7c]
test ecx, ecx
js 0x10070763
call fcn.10049280
test al, al
jne 0x10070781
cmp dword [esi + 0x380], 2
jne 0x1007078b
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x58]
test ecx, ecx
js 0x1007078b
call fcn.10049280
test al, al
je 0x1007078b
cmp byte [ebp - 0x3c], 0
mov byte [ebp - 0x4d], 1
je 0x1007078f
mov byte [ebp - 0x4d], 0
mov dl, byte [ebp - 0x12]
test dl, dl
je 0x100707c6
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x88]
test ecx, ecx
js 0x100707c6
call fcn.10049280
test al, al
je 0x100707c3
cmp byte [ebp - 0x3c], 0
jne 0x100707c3
cmp byte [ebp - 0x88], 0
je 0x100707c3
mov byte [ebp - 0x61], 1
jmp 0x100707ce
mov dl, byte [ebp - 0x12]
mov byte [ebp - 0x61], 0
test dl, dl
je 0x100707e6
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x84]
test ecx, ecx
js 0x100707e6
call fcn.10049280
test al, al
jne 0x10070804
cmp byte [ebp - 0x26], 0
je 0x10070817
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x88]
test ecx, ecx
js 0x10070817
call fcn.10049280
test al, al
je 0x10070817
cmp byte [ebp - 0x3c], 0
jne 0x10070817
cmp byte [ebp - 0x88], 0
mov byte [ebp - 0x26], 1
jne 0x1007081b
mov byte [ebp - 0x26], 0
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x38]
test ecx, ecx
js 0x10070872
call fcn.10049280
test al, al
je 0x10070872
cmp byte [ebp - 0x13], 0
je 0x1007084e
mov eax, 0x200004
lea edx, [edi + 0x3c]
or eax, dword [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.1006df50
jmp 0x10070f4d
mov eax, 0x200000
mov ecx, 0x20000c
cmp byte [ebp - 0x19], 0
lea edx, [edi + 0x3c]
cmovne eax, ecx
mov ecx, edi
or eax, dword [ebp - 0x2c]
push eax
call fcn.1006df50
jmp 0x10070f4d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
js 0x100708af
call fcn.10049280
test al, al
je 0x100708af
cmp byte [ebp - 0x13], 0
je 0x100708a5
mov eax, 0x200005
lea edx, [edi + 0x3c]
or eax, dword [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.1006df50
jmp 0x10070f4d
mov eax, 0x200001
lea ecx, [eax + 0xc]
jmp 0x10070858
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x10070921
call fcn.10049280
test al, al
je 0x10070921
cmp byte [ebp - 0x38], 0
je 0x10070921
cmp byte [esi + 0x100], 0
je 0x10070903
mov edx, dword [ebp - 0x80]
movss xmm0, dword [edx + 0x5c]
subss xmm0, dword [esi + 0x1938]
mov dword [edx + 0x74], 0
mov dword [edx + 0x7c], 0
maxss xmm0, dword [0x10151bac]
movss dword [edx + 0x6c], xmm0
jmp 0x10070f61
movzx eax, byte [ebp - 0x13]
lea edx, [edi + 0x3c]
mov ecx, edi
lea eax, [eax*4 + 0x200002]
or eax, dword [ebp - 0x2c]
push eax
call fcn.1006df50
jmp 0x10070f4d
mov ecx, dword [0x10168418]
mov ecx, dword [ecx + 0x44]
test ecx, ecx
js 0x1007099c
call fcn.10049280
test al, al
je 0x1007099c
cmp byte [ebp - 0x38], 0
je 0x1007099c
cmp byte [esi + 0x100], 0
je 0x1007097e
mov ecx, dword [ebp - 0x80]
movss xmm0, dword [esi + 0x1938]
mov eax, dword [0x10168418]
addss xmm0, dword [ecx + 0x5c]
mov eax, dword [eax + 0x1ba4]
minss xmm0, dword [eax + 0x64]
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x7c], 0
movss dword [ecx + 0x6c], xmm0
jmp 0x10070f61
movzx eax, byte [ebp - 0x13]
lea edx, [edi + 0x3c]
mov ecx, edi
lea eax, [eax*4 + 0x200003]
or eax, dword [ebp - 0x2c]
push eax
call fcn.1006df50
jmp 0x10070f4d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x48]
test ecx, ecx
js 0x10070a05
call fcn.10049280
test al, al
je 0x10070a05
cmp byte [ebp - 0x38], 0
je 0x10070a05
mov ecx, dword [ebp - 0x2c]
lea edx, [edi + 0x3c]
or ecx, 0x20000e
push ecx
mov ecx, edi
call fcn.1006df50
movd xmm0, dword [ebp - 0x4c]
movss xmm1, dword [ebp - 0xc8]
cvtdq2ps xmm0, xmm0
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mulss xmm0, dword [esi + 0x1938]
subss xmm1, xmm0
movss dword [ebp - 0xc8], xmm1
jmp 0x10070f5e
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x4c]
test ecx, ecx
js 0x10070a6a
call fcn.10049280
test al, al
je 0x10070a6a
cmp byte [ebp - 0x38], 0
je 0x10070a6a
mov ecx, dword [ebp - 0x2c]
lea edx, [edi + 0x3c]
or ecx, 0x20000f
push ecx
mov ecx, edi
call fcn.1006df50
movd xmm0, dword [ebp - 0x4c]
cvtdq2ps xmm0, xmm0
mov byte [edi + 0xe6c], 1
mov dword [edi + 0xe68], 0xbe99999a
mulss xmm0, dword [esi + 0x1938]
addss xmm0, dword [ebp - 0xc8]
movss dword [ebp - 0xc8], xmm0
jmp 0x10070f5e
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x50]
test ecx, ecx
js 0x10070aa9
call fcn.10049280
test al, al
je 0x10070aa9
mov ecx, dword [ebp - 0x2c]
lea edx, [edi + 0x3c]
mov eax, ecx
or ecx, 0x200004
or eax, 0x200006
cmp byte [esi + 0x100], 0
cmovne ecx, eax
push ecx
mov ecx, edi
call fcn.1006df50
jmp 0x10070f4d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x54]
test ecx, ecx
js 0x10070ae8
call fcn.10049280
test al, al
je 0x10070ae8
mov ecx, dword [ebp - 0x2c]
lea edx, [edi + 0x3c]
mov eax, ecx
or ecx, 0x200005
or eax, 0x200007
cmp byte [esi + 0x100], 0
cmovne ecx, eax
push ecx
mov ecx, edi
call fcn.1006df50
jmp 0x10070f4d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x5c]
test ecx, ecx
js 0x10070b1c
call fcn.10049280
test al, al
je 0x10070b1c
cmp byte [ebp - 0x3c], 0
jne 0x10070b1c
mov ecx, dword [ebp - 0x2c]
lea edx, [edi + 0x3c]
or ecx, 0x200008
push ecx
mov ecx, edi
call fcn.1006df50
jmp 0x10070f4d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x60]
test ecx, ecx
js 0x10070bb0
call fcn.10049280
test al, al
je 0x10070bb0
cmp byte [ebp - 0x3c], 0
jne 0x10070bb0
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x10070b97
cmp byte [ebp - 0x19], 0
je 0x10070b50
push 0x60000c
jmp 0x10070b79
cmp byte [ebp - 0x82], 0
je 0x10070b97
cmp byte [esi + 0x103], 0
je 0x10070b97
cmp byte [esi + 0x102], 0
jne 0x10070b97
cmp byte [esi + 0x100], 0
jne 0x10070b97
push 0x600004
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1006df50
mov dword [edi + 0xe68], 0xbe99999a
add esp, 4
mov byte [edi + 0xe6c], 1
mov ecx, dword [ebp - 0x2c]
lea edx, [edi + 0x3c]
or ecx, 0x200009
push ecx
mov ecx, edi
call fcn.1006df50
jmp 0x10070f4d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x68]
test ecx, ecx
js 0x10070bc5
call fcn.10049280
test al, al
jne 0x10070bda
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x70]
test ecx, ecx
js 0x10070c44
call fcn.10049280
test al, al
je 0x10070c44
mov edx, dword [ebx + 0x14]
mov eax, edx
shr eax, 0xb
and al, 1
cmp byte [ebp - 0x38], 0
je 0x10070bf8
mov cl, byte [esi + 0x100]
test al, al
je 0x10070c05
test cl, cl
jne 0x10070c09
mov byte [ebp - 0x41], 1
mov byte [ebp - 0x31], 1
jmp 0x10070f61
test cl, cl
jne 0x10070bf8
cmp byte [ebp - 0x3c], 0
jne 0x10070f61
push 2
sub esp, 8
mov dword [ebp - 0x24], 0xa
lea ecx, [ebp - 0x24]
call fcn.1006f390
add esp, 0xc
test al, al
je 0x10070f61
push dword [ebp - 0x24]
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1006df50
jmp 0x10070f4d
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
js 0x10070c63
call fcn.10049280
test al, al
je 0x10070c63
mov cl, 1
mov byte [ebp - 0x41], cl
jmp 0x10070f64
mov al, byte [ebp - 0x61]
test al, al
jne 0x10070f2e
cmp byte [ebp - 0x26], al
jne 0x10070f2e
cmp byte [ebp - 0x12], al
je 0x10070cb1
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x74]
test ecx, ecx
js 0x10070cb1
call fcn.10049280
test al, al
je 0x10070cb1
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
mov byte [edi + 0xe6c], 1
jmp 0x10070f61
mov al, byte [ebp - 0x1a]
test al, al
jne 0x10070e3b
cmp byte [ebp - 0x81], al
jne 0x10070e3b
cmp byte [ebp - 0x4d], al
je 0x10070f61
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0xd0]
test ecx, ecx
je 0x10070cf6
push dword [eax + 0xd8]
call ecx
mov esi, eax
add esp, 4
test esi, esi
jne 0x10070cfb
jmp 0x10070f61
mov esi, 0x101460c9
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10070d00
mov eax, dword [0x10168418]
sub ecx, edx
test eax, eax
je 0x10070d18
inc dword [eax + 0x374]
lea eax, [ecx*2 + 2]
push eax
call fcn.10105bc4
mov ecx, eax
add esp, 4
xor eax, eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x58], eax
cmp byte [esi], al
je 0x10070d83
xor edi, edi
push 0
mov edx, esi
lea ecx, [ebp - 0x18]
call fcn.10043310
add esp, 4
add esi, eax
cmp dword [ebp - 0x18], 0
je 0x10070d77
mov edx, dword [ebx + 0x14]
lea ecx, [ebp - 0x18]
push 5
sub esp, 8
call fcn.1006f390
add esp, 0xc
test al, al
je 0x10070d72
mov ecx, dword [ebp - 0x48]
mov ax, word [ebp - 0x18]
mov word [ecx + edi*2], ax
inc edi
cmp byte [esi], 0
jne 0x10070d38
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x58], edi
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x58]
xor edx, edx
mov word [ecx + eax*2], dx
test eax, eax
jle 0x10070e1d
mov edx, dword [edi + 0x44]
mov ecx, dword [edi + 0x40]
mov eax, dword [edi + 4]
cmp ecx, edx
je 0x10070db7
cmp ecx, eax
jle 0x10070da7
mov dword [edi + 0x40], eax
mov ecx, eax
cmp edx, eax
jle 0x10070db0
mov dword [edi + 0x44], eax
mov edx, eax
cmp ecx, edx
jne 0x10070db7
mov dword [edi + 0x3c], ecx
cmp dword [edi + 0x3c], eax
jle 0x10070dbf
mov dword [edi + 0x3c], eax
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1006dec0
push dword [ebp - 0x58]
mov edx, dword [edi + 0x3c]
mov ecx, edi
push dword [ebp - 0x48]
call fcn.1006d9d0
add esp, 8
test al, al
je 0x10070dff
push dword [ebp - 0x58]
mov edx, dword [edi + 0x3c]
lea ecx, [edi + 0x5c]
push 0
call fcn.1006eed0
mov eax, dword [ebp - 0x58]
add esp, 8
add dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
jmp 0x10070e13
movzx eax, word [edi + 0xe5a]
test ax, ax
je 0x10070e13
dec eax
mov word [edi + 0xe5a], ax
mov ecx, dword [ebp - 0x48]
mov byte [edi + 0xe6c], 1
test ecx, ecx
je 0x10070e30
mov eax, dword [0x10168418]
test eax, eax
je 0x10070e30
dec dword [eax + 0x374]
push ecx
call fcn.101012f6
jmp 0x10070f5e
cmp dword [esi + 0xd4], 0
je 0x10070eef
mov ecx, dword [edi + 0x44]
mov eax, dword [edi + 0x40]
cmp eax, ecx
je 0x10070e5c
mov esi, ecx
cmovge ecx, eax
cmovl esi, eax
jmp 0x10070e61
mov ecx, dword [edi + 4]
xor esi, esi
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x54], esi
lea edx, [eax + ecx*2]
lea ecx, [eax + esi*2]
call fcn.10043540
mov ecx, dword [0x10168418]
inc eax
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x10070e89
inc dword [ecx + 0x374]
push eax
call fcn.10105bc4
mov esi, dword [edi + 0x14]
add esp, 4
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
lea ecx, [esi + ecx*2]
push ecx
mov ecx, dword [ebp - 0x54]
lea ecx, [esi + ecx*2]
mov esi, eax
push ecx
mov ecx, esi
call fcn.10043470
mov eax, dword [0x10168418]
add esp, 8
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x10070ed5
push esi
push dword [eax + 0xd8]
call ecx
mov eax, dword [0x10168418]
add esp, 8
test esi, esi
je 0x10070ee3
test eax, eax
je 0x10070ee3
dec dword [eax + 0x374]
push esi
call fcn.101012f6
mov al, byte [ebp - 0x1a]
add esp, 4
test al, al
je 0x10070f61
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
jne 0x10070f0f
mov eax, dword [edi + 4]
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], eax
mov dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
mov byte [edi + 0xe6c], 1
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x10070f61
lea edx, [edi + 0x3c]
mov ecx, edi
call fcn.1006dec0
mov byte [edi + 0x52], 0
jmp 0x10070f61
movzx eax, al
lea edx, [edi + 0x3c]
xor eax, 1
mov ecx, edi
add eax, 0x20000a
push eax
call fcn.1006df50
mov eax, dword [edi + 0x3c]
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0xe68], 0xbe99999a
mov byte [edi + 0xe6c], 1
add esp, 4
mov cl, byte [ebp - 0x11]
mov eax, dword [edi + 0x40]
cmp eax, dword [edi + 0x44]
je 0x10070f76
cmp byte [ebp - 0x25], 0
je 0x10070f76
mov al, 1
jmp 0x10070f78
xor al, al
or byte [ebp - 0x68], al
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
cmp dword [esi + 0x1bdc], eax
jne 0x100716fb
xor eax, eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x2c], eax
test cl, cl
je 0x10071216
cmp byte [ebp - 0x3c], al
jne 0x10071201
mov ecx, dword [edi + 0x2c]
mov eax, dword [ebx + 8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10070fd0
test dl, dl
je 0x10070fcc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10070fd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10070fb0
xor eax, eax
jmp 0x10070fd5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10071201
mov eax, dword [edi + 0x24]
xor edx, edx
mov ecx, dword [edi + 0x2c]
dec eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 4], edx
test eax, eax
jle 0x10071107
lea edi, [eax + ecx]
mov esi, ecx
xor eax, eax
mov dword [ebp - 0x18], eax
test edi, edi
je 0x1007101f
cmp esi, edi
jae 0x10071040
cmp byte [esi], 0
je 0x10071040
push edi
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.10043310
add esi, eax
add esp, 4
cmp dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x18]
je 0x10071040
inc eax
jmp 0x10071014
mov edi, dword [ebp - 0x60]
lea edx, [eax + 1]
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x24], edx
test edx, edx
jle 0x10071090
mov ecx, 8
mov eax, edx
cmp edx, ecx
cmovl eax, ecx
mov dword [ebp - 0x20], eax
test eax, eax
jle 0x10071090
mov ecx, dword [0x10168418]
test ecx, ecx
je 0x10071073
inc dword [ecx + 0x374]
add eax, eax
push eax
call fcn.10105bc4
mov ecx, dword [ebp - 0x20]
add esp, 4
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x98], ecx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x18], eax
lea ecx, [eax - 2]
lea ecx, [ecx + edx*2]
mov dword [ebp - 0x70], ecx
cmp eax, ecx
jae 0x100710ff
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x54]
test edi, edi
je 0x100710c9
cmp esi, edi
jae 0x100710f6
cmp byte [esi], 0
je 0x100710f6
push edi
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.10043310
mov ecx, dword [ebp - 0x20]
add esi, eax
mov eax, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
je 0x100710f6
mov word [eax], cx
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x70]
jb 0x100710c1
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x40]
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x2c]
lea ecx, [edx - 1]
xor edx, edx
test eax, eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x20], eax
cmovle ecx, edx
push ecx
mov dword [ebp - 0x24], ecx
lea ecx, [edi + 0x5c]
push eax
call fcn.1006eed0
add esp, 8
mov dword [ebp - 0x54], eax
test eax, eax
je 0x10071153
mov edx, dword [ebp - 0x20]
xor ecx, ecx
test edx, edx
jle 0x10071153
mov esi, eax
nop dword [eax]
mov eax, dword [edi + 0x14]
mov ax, word [eax + ecx*2]
mov word [esi + ecx*2], ax
inc ecx
cmp ecx, edx
jl 0x10071140
mov esi, dword [ebp - 0x40]
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 4]
mov dword [ebp - 0x18], ecx
mov byte [edi + 0xe6e], 1
lea edx, [ecx + eax*2]
mov dword [ebp - 0x20], edx
call fcn.10043540
mov ecx, dword [ebp - 0x20]
sub dword [edi + 8], eax
mov dword [edi + 4], 0
movzx eax, word [ecx]
add ecx, 2
test ax, ax
je 0x100711a8
mov esi, dword [ebp - 0x18]
nop dword [eax]
mov word [esi], ax
lea ecx, [ecx + 2]
movzx eax, word [ecx - 2]
add esi, 2
test ax, ax
jne 0x10071190
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x24]
test eax, eax
jle 0x100711d8
push eax
push dword [ebp - 0x94]
xor edx, edx
mov ecx, edi
call fcn.1006d9d0
add esp, 8
test al, al
je 0x100711d8
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x3c], eax
mov byte [edi + 0x52], 0
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x100711fa
mov eax, dword [0x10168418]
test eax, eax
je 0x100711f1
dec dword [eax + 0x374]
push ecx
call fcn.101012f6
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x31], 0
mov eax, dword [ebx + 0x14]
je 0x1007160a
test al, 0x20
je 0x1007160a
cmp byte [ebp - 0x3c], 0
jne 0x10071277
mov eax, dword [edi + 0xc]
lea ecx, [edi + 0x18]
mov byte [edi + 0x30], 1
lea edx, [eax*4 + 1]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x24], edx
cmp edx, eax
jle 0x10071265
test eax, eax
je 0x1007124a
cdq
sub eax, edx
mov edx, dword [ebp - 0x24]
mov ecx, eax
sar ecx, 1
add ecx, dword [edi + 0x1c]
jmp 0x1007124f
mov ecx, 8
cmp ecx, edx
mov eax, edx
cmovg eax, ecx
lea ecx, [edi + 0x18]
push eax
call fcn.10055870
mov edx, dword [ebp - 0x24]
lea ecx, [edi + 0x18]
mov dword [ecx], edx
mov ecx, dword [edi + 0x20]
push 0
push dword [edi + 0x14]
call fcn.10043470
add esp, 8
mov edx, dword [ebx + 0x14]
test edx, 0x801c0
je 0x100715c2
test dl, 0x40
je 0x100712af
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x34]
test ecx, ecx
js 0x100712af
call fcn.10049280
mov edx, dword [ebx + 0x14]
test al, al
je 0x100712af
mov eax, 0x40
xor ecx, ecx
jmp 0x10071327
test dl, dl
jns 0x100712f7
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x40]
test ecx, ecx
js 0x100712d5
call fcn.10049280
mov edx, dword [ebx + 0x14]
test al, al
je 0x100712d5
mov eax, 0x80
lea ecx, [eax - 0x7d]
jmp 0x10071327
mov eax, dword [0x10168418]
mov ecx, dword [eax + 0x44]
test ecx, ecx
js 0x100712f7
call fcn.10049280
mov edx, dword [ebx + 0x14]
test al, al
je 0x100712f7
mov eax, 0x80
lea ecx, [eax - 0x7c]
jmp 0x10071327
test edx, 0x80000
je 0x1007130f
cmp byte [edi + 0xe6e], 0
je 0x1007130f
mov eax, 0x80000
jmp 0x10071322
test edx, 0x100
mov ecx, 0x100
mov eax, 0
cmovne eax, ecx
mov ecx, 0x16
test eax, eax
je 0x100715c2
mov dword [ebp - 0x120], eax
xor esi, esi
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x10c], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x108], eax
mov eax, dword [edi + 0x34]
mov word [ebp - 0xff], si
mov dword [ebp - 0x118], esi
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x104], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x11c], edx
mov dword [ebp - 0x110], ecx
mov ecx, esi
mov dword [ebp - 0x114], 0
lea edx, [esi + eax*2]
mov byte [ebp - 0xfd], 0
mov byte [ebp - 0x100], 0
call fcn.10043540
mov edx, dword [ebp - 0x60]
mov edi, eax
mov ecx, esi
mov dword [ebp - 0xfc], edi
mov edx, dword [edx + 0x40]
lea edx, [esi + edx*2]
call fcn.10043540
mov dword [ebp - 0x24], eax
mov ecx, esi
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x60]
mov edx, dword [eax + 0x44]
lea edx, [esi + edx*2]
call fcn.10043540
mov dword [ebp - 0x54], eax
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0x120]
push eax
xor eax, eax
call eax
mov al, byte [ebp - 0x100]
add esp, 4
mov edx, dword [ebp - 0xfc]
mov byte [ebp - 0x1a], al
cmp edx, edi
jne 0x100713f2
test al, al
je 0x10071441
mov esi, dword [ebp - 0x10c]
xor eax, eax
lea edi, [edx + esi]
mov dword [ebp - 0x18], eax
test edi, edi
je 0x10071408
cmp esi, edi
jae 0x10071429
cmp byte [esi], 0
je 0x10071429
push edi
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.10043310
add esi, eax
add esp, 4
cmp dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x18]
je 0x10071429
inc eax
jmp 0x100713fd
mov edi, dword [ebp - 0x60]
mov edx, dword [ebp - 0xfc]
mov dword [edi + 0x3c], eax
mov al, byte [ebp - 0x1a]
mov byte [edi + 0xe6c], 1
jmp 0x10071444
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xf8]
cmp ecx, dword [ebp - 0x24]
jne 0x10071453
test al, al
je 0x1007149f
cmp ecx, edx
jne 0x1007145c
mov eax, dword [edi + 0x3c]
jmp 0x1007149c
mov esi, dword [ebp - 0x10c]
xor eax, eax
lea edi, [ecx + esi]
mov dword [ebp - 0x18], eax
test edi, edi
je 0x10071472
cmp esi, edi
jae 0x10071493
cmp byte [esi], 0
je 0x10071493
push edi
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.10043310
add esi, eax
add esp, 4
cmp dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x18]
je 0x10071493
inc eax
jmp 0x10071467
mov ecx, dword [ebp - 0xf8]
mov edi, dword [ebp - 0x60]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0xf4]
cmp eax, dword [ebp - 0x54]
jne 0x100714b4
cmp byte [ebp - 0x1a], 0
je 0x100715bf
cmp eax, ecx
jne 0x100714bd
mov eax, dword [edi + 0x40]
jmp 0x100714f7
mov esi, dword [ebp - 0x10c]
lea edi, [eax + esi]
xor eax, eax
mov dword [ebp - 0x18], eax
test edi, edi
je 0x100714d3
cmp esi, edi
jae 0x100714f4
cmp byte [esi], 0
je 0x100714f4
push edi
mov edx, esi
lea ecx, [ebp - 0x20]
call fcn.10043310
add esi, eax
add esp, 4
cmp dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x18]
je 0x100714f4
inc eax
jmp 0x100714c8
mov edi, dword [ebp - 0x60]
cmp byte [ebp - 0x1a], 0
mov dword [edi + 0x44], eax
je 0x100715bf
mov esi, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x5c]
cmp esi, ecx
jle 0x10071550
cmp byte [ebp - 0x7c], 0
je 0x10071550
mov eax, dword [edi + 0x10]
sub esi, ecx
add esi, dword [edi + 0xc]
cmp esi, eax
jle 0x1007154d
test eax, eax
je 0x10071536
cdq
sub eax, edx
lea edx, [edi + 0xc]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x1007153e
mov ecx, 8
lea edx, [edi + 0xc]
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.100558e0
mov dword [edi + 0xc], esi
mov eax, dword [ebp - 0x10c]
mov ecx, dword [edi + 0x14]
mov esi, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0xc]
dec eax
mov dword [ebp - 0x54], ecx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x24], eax
cmp ecx, eax
jae 0x100715a0
mov edi, dword [ebp - 0x20]
cmp byte [edi], 0
je 0x1007159a
push 0
mov edx, edi
lea ecx, [ebp - 0x20]
call fcn.10043310
add edi, eax
add esp, 4
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x1007159a
mov word [esi], ax
add esi, 2
cmp esi, dword [ebp - 0x24]
jb 0x10071572
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
xor eax, eax
mov word [esi], ax
sub esi, ecx
mov eax, dword [ebp - 0x108]
sar esi, 1
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov dword [edi + 0xe68], 0xbe99999a
mov esi, dword [ebp - 0x40]
cmp byte [ebp - 0x3c], 0
jne 0x10071607
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x20]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100715f0
test dl, dl
je 0x100715ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100715f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100715d0
xor eax, eax
jmp 0x100715f5
sbb eax, eax
or eax, 1
test eax, eax
mov eax, dword [ebx + 0x14]
je 0x1007160a
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [edi + 8]
jmp 0x1007160d
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x4c]
test edx, edx
je 0x100716dd
cmp byte [ebp - 0x7c], 0
je 0x100716a9
mov dword [ebp - 0x14c], eax
xorps xmm0, xmm0
mov eax, dword [ebx + 8]
mov dword [ebp - 0x13c], eax
lea eax, [ecx + 1]
cmp dword [ebx + 0xc], eax
movlpd qword [ebp - 0x144], xmm0
cmovge eax, dword [ebx + 0xc]
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x150]
push eax
xor eax, eax
movlpd qword [ebp - 0x130], xmm0
movlpd qword [ebp - 0x128], xmm0
mov dword [ebp - 0x150], 0x40000
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x148], 0
call eax
mov eax, dword [ebp - 0x13c]
add esp, 4
mov edx, dword [ebp - 0x4c]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x134]
mov dword [ebx + 0xc], eax
lea ecx, [eax - 1]
cmp dword [ebp - 0x138], ecx
cmovl ecx, dword [ebp - 0x138]
lea eax, [ecx + 1]
mov ecx, dword [ebx + 0xc]
cmp eax, ecx
cmovl ecx, eax
mov dword [ebx + 0xc], ecx
cmp ecx, 1
jb 0x100716d9
jbe 0x100716d1
lea eax, [ecx - 1]
push eax
push edx
push dword [ebx + 8]
call fcn.10105aa0
mov ecx, dword [ebx + 0xc]
add esp, 0xc
mov eax, dword [ebx + 8]
mov byte [ecx + eax - 1], 0
mov byte [ebp - 0x4f], 1
mov dword [edi + 0xe70], 0
mov dword [edi + 0xe74], 0
mov dword [edi + 0xe78], 0
cmp byte [ebp - 0x41], 0
mov ecx, dword [ebp - 0x30]
je 0x10071714
cmp dword [esi + 0x1bdc], ecx
jne 0x10071714
call fcn.10045310
mov ecx, dword [ebp - 0x30]
cmp byte [ebp - 0x38], 0
jne 0x100717f3
mov edx, ecx
lea ecx, [ebp - 0xc4]
push 1
call fcn.10044420
movss xmm1, dword [0x10151cb0]
add esp, 4
mov ecx, 7
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
call fcn.10043900
movss xmm2, dword [esi + 0x1560]
mov dl, 1
mov ecx, eax
call fcn.10044030
movss xmm4, dword [ebp - 0xc4]
add esp, 0x10
movss xmm2, dword [ebp - 0xc0]
movaps xmm0, xmm4
addss xmm0, dword [esi + 0x1558]
movaps xmm3, xmm4
movss dword [ebp - 0xe4], xmm4
addss xmm3, dword [ebp - 0xb4]
movaps xmm1, xmm2
movss dword [ebp - 0xe0], xmm2
addss xmm1, dword [ebp - 0x74]
movss dword [ebp - 0x98], xmm0
movaps xmm0, xmm2
addss xmm0, dword [esi + 0x155c]
movss dword [ebp - 0x20], xmm3
movss dword [ebp - 0xdc], xmm3
movss dword [ebp - 0x18], xmm3
movss xmm3, dword [ebp - 0xb4]
movss dword [ebp - 0x70], xmm1
movss dword [ebp - 0xd8], xmm1
movss dword [ebp - 0x94], xmm0
jmp 0x1007186a
movss xmm1, dword [ebp - 0xc4]
movss xmm3, dword [ebp - 0xb4]
movaps xmm2, xmm1
movss xmm0, dword [ebp - 0xc0]
addss xmm2, xmm3
mov ecx, dword [ebp - 0x80]
movss dword [ebp - 0xe4], xmm1
movss dword [ebp - 0xe0], xmm0
mov eax, dword [ecx + 0xd0]
movaps xmm1, xmm2
mov ecx, dword [ecx + 0xd4]
movss dword [ebp - 0x20], xmm1
movss dword [ebp - 0xdc], xmm1
movaps xmm1, xmm0
addss xmm1, dword [ebp - 0x74]
movss dword [ebp - 0x18], xmm2
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], ecx
movaps xmm0, xmm1
movss dword [ebp - 0x70], xmm0
movss dword [ebp - 0xd8], xmm0
cmp byte [ebp - 0x4e], 0
lea eax, [ebp - 0x98]
movss xmm0, dword [eax]
xorps xmm5, xmm5
movss dword [ebp - 0x58], xmm0
xorps xmm6, xmm6
movss dword [ebp - 0xd4], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0xd0], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x7c], eax
movss dword [ebp - 0x5c], xmm1
movss dword [ebp - 0x54], xmm0
movss dword [ebp - 0x24], xmm5
je 0x100718b5
mov eax, dword [edi + 0x20]
mov dword [ebx + 8], eax
mov cl, byte [ebp - 0x27]
mov dword [ebp - 0x2c], 0
test cl, cl
je 0x100718e4
mov eax, dword [ebp - 0x6c]
mov ecx, eax
mov dword [ebx + 8], eax
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100718d0
mov eax, dword [ebp - 0x6c]
sub ecx, edx
add eax, ecx
mov cl, byte [ebp - 0x27]
mov dword [ebp - 0x2c], eax
mov al, byte [ebp - 0x25]
test al, al
jne 0x10071ae1
cmp byte [ebp - 0x68], al
jne 0x10071ae1
cmp byte [ebp - 0x38], al
je 0x10071953
mov eax, dword [ebx + 8]
xor ecx, ecx
mov dl, byte [eax]
lea edi, [eax + 1]
test dl, dl
je 0x10071922
nop dword [eax + eax]
cmp dl, 0xa
lea eax, [ecx + 1]
mov dl, byte [edi]
cmovne eax, ecx
inc edi
mov ecx, eax
test dl, dl
jne 0x10071910
mov al, byte [edi - 1]
dec edi
mov dword [ebp - 0x2c], edi
cmp al, 0xa
je 0x10071932
cmp al, 0xd
je 0x10071932
inc ecx
mov edx, dword [ebp - 0x2c]
movaps xmm0, xmm3
movd xmm5, ecx
cvtdq2ps xmm5, xmm5
movss dword [ebp - 0x54], xmm0
mulss xmm5, dword [esi + 0x1938]
movss dword [ebp - 0x24], xmm5
jmp 0x1007199d
test cl, cl
jne 0x10071988
mov eax, dword [ebp - 0x30]
cmp dword [esi + 0x1bdc], eax
jne 0x1007196f
mov edx, dword [edi + 8]
mov edi, dword [ebx + 8]
add edx, edi
mov dword [ebp - 0x2c], edx
jmp 0x1007198e
mov edi, dword [ebx + 8]
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10071977
sub ecx, edx
lea edx, [edi + ecx]
mov dword [ebp - 0x2c], edx
jmp 0x1007198e
mov edx, dword [ebp - 0x2c]
mov edi, dword [ebx + 8]
mov eax, edx
sub eax, edi
cmp eax, 0x200000
jge 0x10072590
movzx ecx, byte [ebp - 0x27]
movss xmm1, dword [0x10151cb0]
call fcn.10043900
cmp byte [ebp - 0x38], 0
mov ecx, edx
movss xmm2, dword [esi + 0x1938]
lea edx, [ebp - 0xe4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x20], 0
cmovne edx, dword [ebp - 0x20]
test dword [ebp - 0x18], 0xff000000
mov edi, dword [eax + 0x288]
mov eax, dword [esi + 0x1934]
mov dword [ebp - 0x5c], eax
je 0x1007258d
cmp dword [ebp - 0x2c], 0
jne 0x10071a13
mov ecx, dword [ebx + 8]
lea eax, [ecx + 1]
mov dword [ebp - 0x20], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10071a00
sub ecx, dword [ebp - 0x20]
add ecx, dword [ebx + 8]
mov eax, dword [esi + 0x1934]
cmp dword [ebx + 8], ecx
je 0x1007258d
test eax, eax
jne 0x10071a29
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x5c], eax
ucomiss xmm2, dword [0x10151bac]
lahf
test ah, 0x44
jp 0x10071a3e
mov eax, dword [edi + 0x2c]
movss xmm2, dword [eax + 0xc]
movups xmm0, xmmword [edi + 0x68]
movups xmmword [ebp - 0xb0], xmm0
test edx, edx
je 0x10071aac
movss xmm1, dword [edx]
movss xmm0, dword [ebp - 0xb0]
comiss xmm0, xmm1
jae 0x10071a66
movss dword [ebp - 0xb0], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [ebp - 0xac]
comiss xmm0, xmm1
jae 0x10071a80
movss dword [ebp - 0xac], xmm1
movss xmm0, dword [edx + 8]
comiss xmm0, dword [ebp - 0xa8]
ja 0x10071a96
movss dword [ebp - 0xa8], xmm0
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [ebp - 0xa4]
ja 0x10071aac
movss dword [ebp - 0xa4], xmm0
mov eax, dword [ebp - 0x7c]
test edx, edx
push dword [eax + 4]
push dword [eax]
setne al
movzx eax, al
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0xb0]
push ecx
push dword [ebx + 8]
mov ecx, dword [ebp - 0x5c]
push eax
push dword [ebp - 0x18]
push edi
call fcn.10064810
jmp 0x1007258d
test cl, cl
jne 0x10071af1
mov eax, dword [edi + 8]
add eax, dword [ebx + 8]
mov dword [ebp - 0x2c], eax
mov al, byte [ebp - 0x25]
mov ecx, dword [edi + 0x14]
xor edx, edx
mov dword [ebp - 0x30], ecx
movaps xmm7, xmm6
movss dword [ebp - 0x7c], xmm6
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x6c], 0xfffffc18
mov dword [ebp - 0x4c], 0xfffffc18
test al, al
je 0x10071b3f
mov eax, dword [edi + 0x3c]
mov edx, 1
mov dword [ebp - 0x6c], 0xffffffff
lea eax, [ecx + eax*2]
mov dword [ebp - 0x88], eax
cmp byte [ebp - 0x68], 0
je 0x10071b66
mov ecx, dword [edi + 0x44]
cmp dword [edi + 0x40], ecx
mov eax, dword [ebp - 0x30]
cmovl ecx, dword [edi + 0x40]
inc edx
mov dword [ebp - 0x4c], 0xffffffff
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x8c], eax
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
movzx eax, al
add edx, eax
xor eax, eax
movzx esi, word [esi]
test si, si
mov dword [ebp - 0x48], eax
mov esi, dword [ebp - 0x40]
je 0x10071bde
mov edi, dword [ebp - 0x30]
movzx esi, word [edi]
mov edi, dword [ebp - 0x6c]
nop word [eax + eax]
cmp si, 0xa
jne 0x10071bc4
inc eax
mov dword [ebp - 0x48], eax
cmp edi, 0xffffffff
jne 0x10071bae
cmp ecx, dword [ebp - 0x88]
jb 0x10071bae
dec edx
mov edi, eax
test edx, edx
jle 0x10071bd5
cmp dword [ebp - 0x4c], 0xffffffff
jne 0x10071bc4
cmp ecx, dword [ebp - 0x8c]
jb 0x10071bc4
dec edx
mov dword [ebp - 0x4c], eax
test edx, edx
jle 0x10071bd5
movzx eax, word [ecx + 2]
add ecx, 2
mov esi, eax
test ax, ax
mov eax, dword [ebp - 0x48]
jne 0x10071b90
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x6c], edi
mov edi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x30]
inc eax
cmp dword [ebp - 0x6c], 0xffffffff
mov ecx, eax
mov dword [ebp - 0x48], eax
cmovne ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x4c]
cmp eax, 0xffffffff
mov dword [ebp - 0x90], ecx
cmove eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x88]
mov ecx, eax
cmp eax, edx
jbe 0x10071c1e
nop
cmp word [ecx - 2], 0xa
je 0x10071c1e
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x10071c10
movaps xmm1, xmm6
mov eax, dword [0x10168418]
movaps xmm3, xmm6
mov edx, dword [eax + 0x1934]
movss xmm2, dword [eax + 0x1938]
divss xmm2, dword [edx + 0x10]
cmp ecx, dword [ebp - 0x88]
jae 0x10071c92
mov edi, dword [ebp - 0x88]
mov esi, edx
nop dword [eax]
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x10071c66
maxss xmm1, xmm3
movaps xmm3, xmm6
jmp 0x10071c88
cmp edx, 0xd
je 0x10071c88
mov edx, eax
cmp edx, dword [esi]
jge 0x10071c7b
mov eax, dword [esi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x10071c80
movss xmm0, dword [esi + 0xc]
mulss xmm0, xmm2
addss xmm3, xmm0
cmp ecx, edi
jb 0x10071c50
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x40]
cmp dword [ebp - 0x4c], 0
maxss xmm3, xmm1
movd xmm4, dword [ebp - 0x90]
movss xmm0, dword [esi + 0x1938]
cvtdq2ps xmm4, xmm4
movss dword [ebp - 0x88], xmm3
mulss xmm4, xmm0
movss dword [ebp - 0x94], xmm4
jl 0x10071d77
mov eax, dword [ebp - 0x8c]
mov ecx, eax
mov edx, dword [ebp - 0x30]
cmp eax, edx
jbe 0x10071ce4
cmp word [ecx - 2], 0xa
je 0x10071ce4
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x10071cd6
movaps xmm1, xmm6
mov eax, dword [0x10168418]
mov edx, dword [eax + 0x1934]
movss xmm2, dword [eax + 0x1938]
divss xmm2, dword [edx + 0x10]
cmp ecx, dword [ebp - 0x8c]
jae 0x10071d52
mov esi, dword [ebp - 0x8c]
mov edi, edx
nop
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x10071d26
maxss xmm1, xmm7
movaps xmm7, xmm6
jmp 0x10071d48
cmp edx, 0xd
je 0x10071d48
mov edx, eax
cmp edx, dword [edi]
jge 0x10071d3b
mov eax, dword [edi + 8]
movss xmm0, dword [eax + edx*4]
jmp 0x10071d40
movss xmm0, dword [edi + 0xc]
mulss xmm0, xmm2
addss xmm7, xmm0
cmp ecx, esi
jb 0x10071d10
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x40]
movd xmm3, dword [ebp - 0x4c]
maxss xmm7, xmm1
movss xmm0, dword [esi + 0x1938]
cvtdq2ps xmm3, xmm3
mulss xmm3, xmm0
movss dword [ebp - 0x7c], xmm3
movss xmm3, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x38]
movss xmm1, dword [ebp - 0xb4]
test cl, cl
je 0x10071d9f
movd xmm5, dword [ebp - 0x48]
cvtdq2ps xmm5, xmm5
mulss xmm5, xmm0
movaps xmm0, xmm1
movss dword [ebp - 0x54], xmm0
movss dword [ebp - 0x24], xmm5
cmp byte [ebp - 0x25], 0
je 0x10071ec3
cmp byte [edi + 0xe6c], 0
je 0x10071ec3
test dword [ebx + 0x14], 0x1000
jne 0x10071e17
movss xmm2, dword [edi + 0x38]
movaps xmm0, xmm1
comiss xmm2, xmm3
subss xmm1, dword [esi + 0x1558]
mulss xmm0, dword [0x10151c48]
movss dword [ebp - 0xb4], xmm1
movaps xmm1, xmm3
jbe 0x10071df4
subss xmm1, xmm0
movaps xmm0, xmm6
maxss xmm0, xmm1
jmp 0x10071e05
subss xmm1, dword [ebp - 0xb4]
comiss xmm1, xmm2
jb 0x10071e1e
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x38], xmm0
jmp 0x10071e1e
mov dword [edi + 0x38], 0
test cl, cl
je 0x10071eaf
movss xmm2, dword [ebp - 0xc8]
movaps xmm0, xmm4
subss xmm0, dword [esi + 0x1938]
movss xmm3, dword [ebp - 0x74]
comiss xmm2, xmm0
jbe 0x10071e4c
movaps xmm2, xmm6
maxss xmm2, xmm0
jmp 0x10071e68
movaps xmm0, xmm4
subss xmm0, xmm3
comiss xmm0, xmm2
jb 0x10071e68
movss xmm2, dword [esi + 0x155c]
addss xmm2, xmm2
addss xmm2, xmm0
comiss xmm6, xmm2
movss xmm1, dword [esi + 0x155c]
jbe 0x10071e7a
movaps xmm1, xmm6
jmp 0x10071e8e
addss xmm1, xmm1
addss xmm1, xmm5
subss xmm1, xmm3
maxss xmm1, xmm6
minss xmm1, xmm2
mov eax, dword [ebp - 0x80]
movss xmm0, dword [eax + 0x5c]
subss xmm0, xmm1
addss xmm0, dword [ebp - 0xd0]
movss dword [ebp - 0xd0], xmm0
movss dword [eax + 0x5c], xmm1
mov byte [edi + 0xe6c], 0
movss xmm0, dword [ebp - 0xd4]
movss dword [ebp - 0x58], xmm0
cmp byte [ebp - 0x68], 0
movss xmm5, dword [edi + 0x38]
movss dword [ebp - 0x48], xmm5
je 0x10072192
mov edx, dword [edi + 0x44]
mov eax, edx
mov ecx, dword [edi + 0x40]
cmp ecx, edx
mov esi, dword [ebp - 0x30]
cmovl eax, ecx
cmovge edx, ecx
cmp byte [ebp - 0x25], 0
lea esi, [esi + eax*2]
mov eax, dword [ebp - 0x30]
lea edx, [eax + edx*2]
mov dword [ebp - 0x68], edx
je 0x10071f06
movss xmm1, dword [0x10151cb0]
jmp 0x10071f0e
movss xmm1, dword [0x10151c74]
mov ecx, 0x2f
call fcn.10043900
mov ecx, dword [ebp - 0x38]
xorps xmm0, xmm0
mov dword [ebp - 0x90], eax
test cl, cl
je 0x10071f30
xorps xmm5, xmm5
xorps xmm6, xmm6
jmp 0x10071f40
movss xmm5, dword [0x10151f1c]
movss xmm6, dword [0x10151d08]
movss xmm3, dword [ebp - 0xd0]
movss xmm4, dword [ebp - 0x58]
movss dword [ebp - 0x8c], xmm6
addss xmm7, xmm4
movss dword [ebp - 0x6c], xmm5
addss xmm3, dword [ebp - 0x7c]
subss xmm7, dword [ebp - 0x48]
subss xmm3, xmm0
movss dword [ebp - 0x7c], xmm3
cmp esi, edx
jae 0x100721e2
movss xmm4, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x90]
nop word [eax + eax]
movaps xmm0, xmm4
addss xmm0, dword [ecx + 0x1938]
comiss xmm3, xmm0
ja 0x10072181
movss xmm0, dword [ebp - 0xc0]
comiss xmm0, xmm3
jbe 0x10071fd9
cmp esi, edx
jae 0x10072155
nop dword [eax]
mov ax, word [esi]
add esi, 2
cmp ax, 0xa
je 0x10072155
cmp esi, edx
jb 0x10071fc0
jmp 0x10072155
xorps xmm0, xmm0
mov eax, dword [0x10168418]
xorps xmm4, xmm4
xorps xmm1, xmm1
mov edx, dword [eax + 0x1934]
movss xmm2, dword [eax + 0x1938]
divss xmm2, dword [edx + 0x10]
cmp esi, dword [ebp - 0x68]
jae 0x10072044
nop
movzx eax, word [esi]
add esi, 2
mov ecx, eax
cmp eax, 0xa
je 0x10072034
cmp ecx, 0xd
je 0x1007202d
cmp ecx, dword [edx]
jge 0x10072020
mov eax, dword [edx + 8]
movss xmm0, dword [eax + ecx*4]
jmp 0x10072025
movss xmm0, dword [edx + 0xc]
mulss xmm0, xmm2
addss xmm1, xmm0
cmp esi, dword [ebp - 0x68]
jb 0x10072000
jmp 0x1007203e
xorps xmm4, xmm4
maxss xmm4, xmm1
xorps xmm1, xmm1
mov ecx, dword [ebp - 0x40]
xorps xmm0, xmm0
maxss xmm1, xmm4
comiss xmm0, xmm1
jb 0x1007207d
mov eax, dword [ecx + 0x1934]
cmp dword [eax], 0x20
jle 0x10072065
mov eax, dword [eax + 8]
movss xmm0, dword [eax + 0x80]
jmp 0x1007206a
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x10151c6c]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm4, dword [ebp - 0x70]
addss xmm1, xmm7
addss xmm7, dword [0x10151bac]
movaps xmm2, xmm5
movaps xmm0, xmm6
subss xmm2, dword [ecx + 0x1938]
movss xmm6, dword [ebp - 0x20]
addss xmm0, xmm3
minss xmm1, xmm6
maxss xmm7, dword [ebp - 0xc4]
addss xmm2, xmm3
minss xmm0, xmm4
movss dword [ebp - 0xa8], xmm1
movss dword [ebp - 0xb0], xmm7
maxss xmm2, dword [ebp - 0xc0]
comiss xmm0, dword [ebp - 0xc0]
movss dword [ebp - 0xac], xmm2
movss dword [ebp - 0xa4], xmm0
jbe 0x10072152
comiss xmm4, xmm2
jbe 0x10072152
comiss xmm1, dword [ebp - 0xc4]
jbe 0x10072152
comiss xmm6, xmm7
jbe 0x10072152
push 0
push ecx
mov dword [esp], 0
lea eax, [ebp - 0xa8]
push edi
push eax
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 0x288]
call fcn.10060cc0
movss xmm0, dword [ebp - 0x18]
movss xmm3, dword [ebp - 0xd4]
movss xmm4, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x40]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x5c]
movss dword [ebp - 0x58], xmm3
movss xmm3, dword [ebp - 0x7c]
movss dword [ebp - 0x5c], xmm0
mov edx, dword [ebp - 0x68]
movss xmm7, dword [ebp - 0x58]
movss xmm5, dword [ebp - 0x6c]
movss xmm6, dword [ebp - 0x8c]
addss xmm3, dword [ecx + 0x1938]
subss xmm7, dword [ebp - 0x48]
movss dword [ebp - 0x7c], xmm3
cmp esi, edx
jb 0x10071f90
movss xmm5, dword [ebp - 0x48]
xorps xmm6, xmm6
mov edi, dword [ebp - 0x60]
mov esi, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x38]
movss xmm4, dword [ebp - 0x58]
mov edx, dword [ebp - 0x2c]
test cl, cl
jne 0x100721ae
mov eax, edx
sub eax, dword [ebx + 8]
cmp eax, 0x200000
jge 0x100723f9
movzx eax, byte [ebp - 0x27]
mov ecx, dword [0x10168418]
add eax, eax
movups xmm2, xmmword [ecx + eax*8 + 0x15e4]
comiss xmm6, xmm2
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [ecx + 0x1520]
movups xmmword [ebp - 0xb0], xmm2
jbe 0x100721ef
movaps xmm0, xmm6
jmp 0x100721fb
movss xmm5, dword [ebp - 0x48]
xorps xmm6, xmm6
mov esi, dword [ebp - 0x40]
jmp 0x10072197
movss xmm0, dword [0x10151cb0]
minss xmm0, xmm2
movss xmm2, dword [0x10151e70]
movss xmm7, dword [0x10151c6c]
movss xmm3, dword [ebp - 0xac]
comiss xmm6, xmm3
mulss xmm0, xmm2
addss xmm0, xmm7
cvttss2si ecx, xmm0
jbe 0x10072229
movaps xmm0, xmm6
jmp 0x10072235
movss xmm0, dword [0x10151cb0]
minss xmm0, xmm3
movss xmm3, dword [ebp - 0xa8]
mulss xmm0, xmm2
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm6, xmm3
jbe 0x10072258
movaps xmm0, xmm6
jmp 0x10072264
movss xmm0, dword [0x10151cb0]
minss xmm0, xmm3
mulss xmm0, xmm2
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm6, xmm1
jbe 0x1007227f
movaps xmm0, xmm6
jmp 0x1007228b
movss xmm0, dword [0x10151cb0]
minss xmm0, xmm1
mulss xmm0, xmm2
subss xmm4, xmm5
mov dword [ebp - 0x70], edx
mov edx, dword [esi + 0x1934]
movss xmm2, dword [esi + 0x1938]
addss xmm0, xmm7
mov dword [ebp - 0x20], edx
lea edx, [ebp - 0xe4]
mov dword [ebp - 0x90], 0
movss dword [ebp - 0x78], xmm4
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0xd0]
shl eax, 0x18
subss xmm0, xmm6
or eax, ecx
mov ecx, dword [ebp - 0x80]
cmp byte [ebp - 0x38], 0
mov dword [ebp - 0x6c], eax
cmovne edx, dword [ebp - 0x90]
mov ecx, dword [ecx + 0x288]
mov dword [ebp - 0x7c], ecx
movss dword [ebp - 0x74], xmm0
test eax, 0xff000000
je 0x100723f9
cmp dword [ebp - 0x2c], 0
jne 0x1007232b
mov ecx, dword [ebx + 8]
lea eax, [ecx + 1]
mov dword [ebp - 0x90], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10072311
sub ecx, dword [ebp - 0x90]
mov eax, dword [ebx + 8]
add eax, ecx
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x70], eax
jmp 0x1007232e
mov eax, dword [ebp - 0x70]
cmp dword [ebx + 8], eax
je 0x100723f9
cmp dword [esi + 0x1934], 0
jne 0x10072349
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
ucomiss xmm2, xmm6
lahf
test ah, 0x44
jp 0x1007235a
mov eax, dword [ecx + 0x2c]
movss xmm2, dword [eax + 0xc]
movups xmm0, xmmword [ecx + 0x68]
movups xmmword [ebp - 0xb0], xmm0
test edx, edx
je 0x100723c8
movss xmm1, dword [edx]
movss xmm0, dword [ebp - 0xb0]
comiss xmm0, xmm1
jae 0x10072382
movss dword [ebp - 0xb0], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [ebp - 0xac]
comiss xmm0, xmm1
jae 0x1007239c
movss dword [ebp - 0xac], xmm1
movss xmm0, dword [edx + 8]
comiss xmm0, dword [ebp - 0xa8]
ja 0x100723b2
movss dword [ebp - 0xa8], xmm0
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [ebp - 0xa4]
ja 0x100723c8
movss dword [ebp - 0xa4], xmm0
push dword [ebp - 0x74]
test edx, edx
mov edx, dword [ebp - 0x70]
push dword [ebp - 0x78]
setne al
movzx eax, al
push eax
push ecx
mov dword [esp], 0
lea eax, [ebp - 0xb0]
push edx
push dword [ebx + 8]
push eax
push dword [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x20]
call fcn.10064810
cmp byte [ebp - 0x25], 0
je 0x1007258d
movss xmm0, dword [esi + 0x18]
addss xmm0, dword [edi + 0xe68]
movss dword [edi + 0xe68], xmm0
cmp byte [esi + 0xb2], 0
je 0x10072447
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x10072447
movss xmm1, dword [0x10151cc8]
call fcn.1001a460
movss xmm1, dword [0x10151c94]
comiss xmm1, xmm0
jae 0x10072447
xor cl, cl
jmp 0x10072449
mov cl, 1
movss xmm0, dword [ebp - 0x88]
movss xmm6, dword [0x10151cb0]
addss xmm0, dword [ebp - 0xd4]
subss xmm0, dword [ebp - 0x48]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0xd0]
addss xmm0, dword [ebp - 0x94]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm0, dword [0x10151bac]
movss dword [ebp - 0x90], xmm1
movaps xmm4, xmm1
movss dword [ebp - 0xe4], xmm1
addss xmm4, xmm6
cvttss2si eax, xmm0
movss dword [ebp - 0xdc], xmm4
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [ebp - 0x94], xmm2
movaps xmm0, xmm2
movaps xmm3, xmm2
subss xmm0, dword [esi + 0x1938]
subss xmm3, dword [0x10151ce4]
addss xmm0, dword [0x10151c6c]
movss dword [ebp - 0xd8], xmm3
movss dword [ebp - 0xe0], xmm0
test cl, cl
je 0x1007256b
comiss xmm3, dword [ebp - 0xc0]
jbe 0x1007256b
movss xmm5, dword [ebp - 0x5c]
comiss xmm5, xmm0
jbe 0x1007256b
comiss xmm4, dword [ebp - 0xc4]
jbe 0x1007256b
movss xmm0, dword [ebp - 0x18]
comiss xmm0, xmm1
jbe 0x1007256b
sub esp, 8
movss dword [ebp - 0x78], xmm1
movaps xmm1, xmm6
movss dword [ebp - 0x74], xmm3
xor ecx, ecx
mov dword [esp + 4], 0x3f800000
call fcn.10043900
add esp, 4
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0xe4]
push eax
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 0x288]
call fcn.100604f0
movss xmm1, dword [ebp - 0x90]
movss xmm2, dword [ebp - 0x94]
movss xmm6, dword [0x10151cb0]
cmp byte [ebp - 0x3c], 0
jne 0x1007258d
subss xmm2, dword [esi + 0x1938]
subss xmm1, xmm6
movss dword [esi + 0x2f78], xmm2
movss dword [esi + 0x2f74], xmm1
mov edi, dword [ebx + 8]
cmp byte [ebp - 0xa0], 0
je 0x100725a4
cmp byte [ebp - 0x27], 0
jne 0x100725a4
call fcn.1004e7e0
cmp byte [ebp - 0x38], 0
je 0x10072652
mov ecx, dword [0x10168418]
movss xmm1, dword [ebp - 0x24]
addss xmm1, dword [esi + 0x155c]
movss xmm3, dword [ebp - 0x54]
mov eax, dword [ecx + 0x1ba4]
movss dword [ebp - 0x78], xmm3
movss dword [ebp - 0x74], xmm1
mov byte [eax + 0x8c], 1
mov eax, dword [ecx + 0x1ba4]
cmp byte [eax + 0x8f], 0
jne 0x10072648
movss xmm0, dword [eax + 0xd4]
lea ecx, [ebp - 0x78]
movss xmm2, dword [eax + 0xd0]
addss xmm1, xmm0
addss xmm3, xmm2
movss dword [ebp - 0xe4], xmm2
movss dword [ebp - 0xe0], xmm0
movss dword [ebp - 0xd8], xmm1
movss xmm1, dword [0x10151f1c]
movss dword [ebp - 0xdc], xmm3
call fcn.1004ed00
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0xe4]
call fcn.1004ee30
add esp, 8
call fcn.100498b0
call fcn.1004f550
cmp byte [esi + 0x2fcc], 0
je 0x10072696
cmp byte [ebp - 0xa0], 0
je 0x1007266a
cmp byte [ebp - 0x27], 0
je 0x10072696
mov eax, dword [0x10168418]
lea ecx, [ebp - 0xd4]
push dword [ebp - 0x2c]
mov edx, edi
mov dword [eax + 0x2fe4], 0x1014ebc0
mov dword [eax + 0x2fe8], 0x1014eb9c
call fcn.10053fd0
add esp, 4
movss xmm0, dword [ebp - 0xf0]
comiss xmm0, dword [0x10151bac]
jbe 0x100726e9
movss xmm0, dword [ebp - 0xbc]
xor edx, edx
addss xmm0, dword [esi + 0x1570]
mov ecx, dword [ebp - 0xcc]
movss dword [ebp - 0x78], xmm0
movss xmm0, dword [ebp - 0xc0]
addss xmm0, dword [esi + 0x155c]
movss dword [ebp - 0x74], xmm0
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push 1
call fcn.10043c40
add esp, 0xc
mov dl, byte [ebp - 0x4f]
mov ecx, dword [ebx + 0x14]
test dl, dl
je 0x10072716
test ecx, 0x8000000
jne 0x10072716
mov eax, dword [0x10168418]
mov word [eax + 0x1bec], 0x101
mov eax, dword [eax + 0x1ba4]
or dword [eax + 0x120], 4
test cl, 0x20
movzx eax, dl
movzx ecx, byte [ebp - 0x31]
cmovne eax, ecx
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret