Function at 0x10151290
Capabilities:
Encode data using xor
Hash data using fnv

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
push 0xffffffffffffffff
push 0x10231537
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
push esi
push edi
mov eax, dword [0x102d5080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x1109d048]
mov eax, dword [0x10bbf240]
test cl, 1
jne 0x10151307
or ecx, 1
mov dword [0x1109d048], ecx
lea ecx, [eax - 0x500c3374]
xor ecx, 0x3743f7af
mov edx, dword [ecx + 0x1a4]
mov dword [0x1109d044], edx
jmp 0x1015130d
mov edx, dword [0x1109d044]
test edx, edx
je 0x1015131f
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + 0x30]
xor ecx, edx
jne 0x101513ac
lea esi, [eax - 0x500c3374]
mov edi, dword [0x107f41c0]
xor esi, 0x3743f7af
mov dword [ebp - 0x38], 0xa390
xor ecx, ecx
add edi, 0x1efd30ca
mov dword [ebp - 0x24], ecx
xor edi, 0xd7168c7a
mov dword [ebp - 0x4c], edi
mov eax, dword [esi + 0x140]
movss xmm0, dword [esi + 0x44]
addss xmm0, dword [0x102bd62c]
mov ecx, dword [eax + 4]
mov eax, 0x1b4e81b5
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x96
sub ecx, eax
mov eax, dword [ebx + 0x14]
imul edx, ecx, 0xc8
mov ecx, 0xd3b0
cmp byte [eax + 0xc], 0
cmove ecx, dword [ebp - 0x38]
add ecx, eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x28], ecx
comiss xmm0, dword [edx + edi + 0x23c]
jb 0x101513c2
mov eax, dword [ebx + 0x20]
mov dword [eax], 0x3f800000
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edi, dword [ebp - 0x14]
mov eax, dword [0x10375508]
mov esi, dword [edi + 8]
mov dword [ebp - 0x20], esi
test al, 1
jne 0x1015151d
or eax, 1
mov dword [0x10375508], eax
mov dword [ebp - 4], 0
mov eax, dword [0x10371278]
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x1037127c]
je 0x1015144a
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x1015143c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151410
xor edx, edx
test ecx, ecx
je 0x1015143c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151420
cmp esi, 0x1eee87cc
je 0x10151463
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x1037127c]
jne 0x101513f7
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x1037554c], eax
jmp 0x10151522
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x2c], edi
cmp dword [eax + 4], edi
jle 0x10151508
xor ecx, ecx
mov dword [ebp - 0x30], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x38], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x101514b4
cmp dword [ecx + 4], 0
jle 0x101514b4
push 0
mov edx, 0x559d81af
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x101514b1
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x18]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x101514c0
xor edx, edx
test ecx, ecx
je 0x101514ec
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101514d0
cmp esi, 0x559d81af
je 0x1015150f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
cmp edx, dword [eax + 4]
jl 0x10151480
mov eax, edi
jmp 0x1015144c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015144c
mov eax, dword [0x1037554c]
movq xmm0, qword [esi + eax]
mov ecx, esi
movq qword [edi + 0x10], xmm0
mov eax, dword [esi + eax + 8]
mov dword [edi + 0x18], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x28]
call eax
movq xmm0, qword [eax]
movq qword [edi + 0x1c], xmm0
mov eax, dword [eax + 8]
mov dword [edi + 0x24], eax
mov eax, dword [0x10373c28]
test al, 1
jne 0x1015169d
or eax, 1
mov dword [0x10373c28], eax
mov dword [ebp - 4], 1
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x101515ca
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x101515bc
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151590
xor edx, edx
test ecx, ecx
je 0x101515bc
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101515a0
cmp esi, 0x72e242a1
je 0x101515e3
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x10151577
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x10373cc0], eax
jmp 0x101516a2
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10151688
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x38], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151634
cmp dword [ecx + 4], 0
jle 0x10151634
push 0
mov edx, 0xf3c2c786
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10151631
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151640
xor edx, edx
test ecx, ecx
je 0x1015166c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151650
cmp esi, 0xf3c2c786
je 0x1015168f
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jl 0x10151600
mov eax, edi
jmp 0x101515cc
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x101515cc
mov eax, dword [0x10373cc0]
movq xmm0, qword [esi + eax]
movq qword [edi + 0x28], xmm0
mov eax, dword [esi + eax + 8]
mov dword [edi + 0x30], eax
mov eax, dword [0x10373c60]
test al, 1
jne 0x101517fd
or eax, 1
mov dword [0x10373c60], eax
mov dword [ebp - 4], 2
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x1015172a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x1015171c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101516f3
xor edx, edx
test ecx, ecx
je 0x1015171c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151700
cmp esi, 0x1eee87cc
je 0x10151743
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x101516e0
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x10373c78], eax
jmp 0x10151802
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x101517e8
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x38], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151794
cmp dword [ecx + 4], 0
jle 0x10151794
push 0
mov edx, 0xe57f80c
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10151791
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x101517a0
xor edx, edx
test ecx, ecx
je 0x101517cc
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101517b0
cmp esi, 0xe57f80c
je 0x101517ef
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jl 0x10151760
mov eax, edi
jmp 0x1015172c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015172c
mov eax, dword [0x10373c78]
movq xmm0, qword [esi + eax]
movq qword [edi + 0x34], xmm0
mov eax, dword [esi + eax + 8]
mov dword [edi + 0x3c], eax
mov eax, dword [0x103754d4]
test al, 1
jne 0x1015195d
or eax, 1
mov dword [0x103754d4], eax
mov dword [ebp - 4], 3
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x1015188a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x1015187c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151853
xor edx, edx
test ecx, ecx
je 0x1015187c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151860
cmp esi, 0x1eee87cc
je 0x101518a3
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x10151840
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x10373c98], eax
jmp 0x10151962
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10151948
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x38], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x101518f4
cmp dword [ecx + 4], 0
jle 0x101518f4
push 0
mov edx, 0x7d388d3e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x101518f1
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151900
xor edx, edx
test ecx, ecx
je 0x1015192c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151910
cmp esi, 0x7d388d3e
je 0x1015194f
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jl 0x101518c0
mov eax, edi
jmp 0x1015188c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015188c
mov eax, dword [0x10373c98]
movq xmm0, qword [esi + eax]
movq qword [edi + 0x40], xmm0
mov eax, dword [esi + eax + 8]
mov dword [edi + 0x48], eax
add edi, 0x50
mov eax, dword [esi + 0x2920]
mov esi, dword [esi + 0x2914]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x14]
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
mov edi, dword [eax + 8]
mov eax, dword [edi + 8]
mov esi, dword [0x107f41e8]
add esi, 0xdee113ef
mov dword [ebp - 0x18], edi
lea ecx, [edi + 8]
xor esi, 0xb3e5279a
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x38c
add eax, esi
je 0x10152094
mov esi, dword [ebx + 0x14]
mov eax, 0xd390
mov ecx, 0x94
cmp byte [esi + 0xc], 0
cmove eax, ecx
movss xmm0, dword [eax + esi + 8]
movss xmm2, dword [eax + esi]
movss xmm1, dword [eax + esi + 4]
movss dword [ebp - 0x68], xmm0
mov eax, dword [ebp - 0x68]
unpcklps xmm2, xmm1
mov dword [ebp - 0x48], eax
mov eax, dword [0x10375508]
movaps xmmword [ebp - 0x90], xmm2
movq qword [ebp - 0x70], xmm2
test al, 1
jne 0x10151b4d
or eax, 1
mov dword [0x10375508], eax
mov dword [ebp - 4], 4
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x10151a7a
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10151a6c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x10151a43
xor edx, edx
test ecx, ecx
je 0x10151a6c
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151a50
cmp esi, 0x1eee87cc
je 0x10151a9a
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x10151a30
xor eax, eax
mov edi, dword [ebp - 0x18]
mov esi, dword [ebx + 0x14]
mov dword [ebp - 4], 0xffffffff
movaps xmm2, xmmword [ebp - 0x90]
mov dword [0x1037554c], eax
jmp 0x10151b52
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10151b38
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x38], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151ae7
cmp dword [ecx + 4], 0
jle 0x10151ae7
push 0
mov edx, 0x559d81af
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10151ae4
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [edi + ecx], 0
jne 0x10151af0
xor edx, edx
test ecx, ecx
je 0x10151b1c
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151b00
cmp esi, 0x559d81af
je 0x10151b3f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jl 0x10151ab3
mov eax, edi
jmp 0x10151a7c
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x10151a7c
mov eax, dword [0x1037554c]
mov ecx, dword [ebp - 0x48]
movq qword [edi + eax], xmm2
mov dword [edi + eax + 8], ecx
lea ecx, [ebp - 0x70]
mov eax, dword [0x103bfe04]
push ecx
mov ecx, edi
call eax
mov eax, dword [esi + 0xcc]
movq xmm0, qword [esi + 0xc4]
mov dword [ebp - 0x38], eax
mov eax, dword [0x103754d4]
movq qword [ebp - 0x88], xmm0
test al, 1
jne 0x10151cc9
or eax, 1
mov dword [0x103754d4], eax
mov dword [ebp - 4], 5
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x10151bfa
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10151bec
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x10151bc3
xor edx, edx
test ecx, ecx
je 0x10151bec
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151bd0
cmp esi, 0x1eee87cc
je 0x10151c1b
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x10151bb0
xor eax, eax
mov edi, dword [ebp - 0x18]
mov esi, dword [ebx + 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x88]
mov dword [0x10373c98], eax
jmp 0x10151cce
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10151cb4
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x48], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151c68
cmp dword [ecx + 4], 0
jle 0x10151c68
push 0
mov edx, 0x7d388d3e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10151c65
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [edi + ecx], 0
jne 0x10151c71
xor edx, edx
test ecx, ecx
je 0x10151c9c
nop
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151c80
cmp esi, 0x7d388d3e
je 0x10151cbb
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jl 0x10151c34
mov eax, edi
jmp 0x10151bfc
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x10151bfc
mov eax, dword [0x10373c98]
mov ecx, dword [ebp - 0x38]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov eax, dword [esi + 0xc0]
movq xmm0, qword [esi + 0xb8]
mov dword [ebp - 0x38], eax
mov eax, dword [0x10373c60]
movq qword [ebp - 0x88], xmm0
test al, 1
jne 0x10151e3d
or eax, 1
mov dword [0x10373c60], eax
mov dword [ebp - 4], 6
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x10151d6a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10151d5c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151d33
xor edx, edx
test ecx, ecx
je 0x10151d5c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151d40
cmp esi, 0x1eee87cc
je 0x10151d88
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x10151d20
xor eax, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x88]
mov dword [0x10373c78], eax
jmp 0x10151e42
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10151e28
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x48], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151dd5
cmp dword [ecx + 4], 0
jle 0x10151dd5
push 0
mov edx, 0xe57f80c
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10151dd2
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
nop
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151de0
xor edx, edx
test ecx, ecx
je 0x10151e0c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151df0
cmp esi, 0xe57f80c
je 0x10151e2f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jl 0x10151da1
mov eax, edi
jmp 0x10151d6c
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x10151d6c
mov eax, dword [0x10373c78]
mov ecx, dword [ebp - 0x38]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov ecx, dword [0x10373cb4]
test cl, 1
jne 0x10151f9b
or ecx, 1
mov dword [0x10373cb4], ecx
mov dword [ebp - 4], 7
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x10151eca
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10151ebc
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151e93
xor edx, edx
test ecx, ecx
je 0x10151ebc
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151ea0
cmp esi, 0x54aff69
je 0x10151eea
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x10151e80
xor edi, edi
lea edx, [edi + 0x1c]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x10373cb4]
mov edi, dword [ebp - 0x18]
mov dword [0x10373c2c], edx
jmp 0x10151fa1
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10151ecc
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x48], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151f34
cmp dword [ecx + 4], 0
jle 0x10151f34
push 0
mov edx, 0xddac019e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10151f31
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151f40
xor edx, edx
test ecx, ecx
je 0x10151f6c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151f50
cmp esi, 0xddac019e
je 0x10151f8d
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jge 0x10151ecc
jmp 0x10151f00
mov eax, dword [ebp - 0x48]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10151ecc
mov edx, dword [0x10373c2c]
lea eax, [edi + edx]
test eax, eax
je 0x10151fd7
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [0x103bfd24]
test eax, eax
je 0x10151fc2
add eax, 0xa
mov eax, dword [eax]
mov eax, dword [eax]
dec eax
mov dword [edi + 0x2690], eax
mov dword [edi + 0x2924], 0xff7fffff
test cl, 1
jne 0x10152063
or ecx, 1
mov dword [0x10373cb4], ecx
mov dword [ebp - 4], 8
mov eax, dword [0x10371278]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
je 0x1015204e
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10152040
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152013
xor edx, edx
test ecx, ecx
je 0x10152040
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152020
cmp esi, 0x54aff69
je 0x1015236e
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1037127c]
jne 0x10152000
xor edi, edi
lea edx, [edi + 0x1c]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x18]
mov dword [0x10373c2c], edx
add edx, edi
je 0x10152094
mov eax, dword [edi + 0x2920]
mov edi, dword [edi + 0x2914]
mov esi, dword [ebp - 0x28]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x18]
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 0x2920]
mov edi, dword [edx]
mov esi, dword [ebp - 0x28]
lea ecx, [eax + eax*2]
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x10]
movq xmm0, qword [ebx + 8]
movss xmm3, dword [ebx + 8]
movss xmm2, dword [ebx + 0xc]
movq qword [ebp - 0xa8], xmm0
movss xmm0, dword [ebx + 0x10]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x3c]
subss xmm0, dword [eax + 0x20]
subss xmm3, dword [eax + 0x18]
subss xmm2, dword [eax + 0x1c]
movss dword [ebp - 0x38], xmm0
movaps xmm1, xmm3
movss dword [ebp - 0x2c], xmm3
movaps xmm0, xmm2
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm0, xmm1
call fcn.1000ded0
divss xmm2, xmm3
movss dword [ebp - 0x48], xmm0
movaps xmm0, xmm2
call fcn.1021f3ee
mulss xmm0, dword [0x102bd974]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [0x102bdb48]
divss xmm0, dword [ebp - 0x48]
mulss xmm0, dword [ebp - 0x38]
call fcn.1021f3ee
movss dword [ebp - 0x48], xmm0
xorps xmm7, xmm7
movss xmm0, dword [ebp - 0x2c]
comiss xmm0, xmm7
movss xmm0, dword [ebp - 0x30]
jb 0x10152140
addss xmm0, dword [0x102bda24]
mulss xmm0, dword [0x102bd670]
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x2c]
movaps xmm2, xmm0
call fcn.10136d20
movss xmm2, dword [ebp - 0x48]
lea edx, [ebp - 0x30]
xorps xmm2, xmmword [0x102bdf90]
lea ecx, [ebp - 0x48]
call fcn.10136d20
xorps xmm2, xmm2
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x1c]
call fcn.10136d20
movss xmm5, dword [ebp - 0x38]
xor esi, esi
movss xmm0, dword [ebp - 0x30]
movss xmm4, dword [ebp - 0x2c]
movss xmm2, dword [ebp - 0x48]
movss xmm3, dword [ebp - 0x1c]
movss xmm7, dword [ebp - 0x20]
movaps xmm1, xmm3
mulss xmm0, xmm5
mov edi, dword [ebx + 0x20]
mulss xmm1, xmm2
mov dword [ebp - 0x9c], 0
movss dword [ebp - 0x54], xmm0
movss xmm0, dword [ebp - 0x30]
mulss xmm0, xmm4
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
movss dword [ebp - 0x58], xmm0
movaps xmm0, xmm2
xorps xmm0, xmmword [0x102bdf90]
movss dword [ebp - 0x5c], xmm0
movaps xmm0, xmm7
mulss xmm7, dword [0x102bdb48]
mulss xmm0, xmm4
mulss xmm7, xmm5
movss dword [ebp - 0x1c], xmm0
movaps xmm0, xmm1
movss xmm6, dword [ebp - 0x1c]
mulss xmm1, xmm4
mulss xmm0, xmm5
subss xmm7, xmm1
movaps xmm1, xmm3
mulss xmm1, dword [0x102bdb48]
subss xmm6, xmm0
mulss xmm1, dword [ebp - 0x30]
movss dword [ebp - 0x18], xmm7
xorps xmm7, xmm7
movss dword [ebp - 0x1c], xmm6
movss dword [ebp - 0x48], xmm1
movss xmm1, dword [ebp - 0x20]
mulss xmm1, xmm2
movaps xmm2, xmm3
mulss xmm2, xmm4
movaps xmm0, xmm1
mulss xmm3, xmm5
mulss xmm0, xmm5
mulss xmm1, xmm4
addss xmm2, xmm0
subss xmm1, xmm3
movss dword [ebp - 0x68], xmm2
movss xmm2, dword [ebp - 0x20]
mulss xmm2, dword [ebp - 0x30]
movss dword [ebp - 0x78], xmm1
movss dword [ebp - 0x84], xmm2
nop
mov eax, dword [0x103712ac]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
movss xmm5, dword [ebp - 0x1c]
movss xmm3, dword [esi + eax + 8]
movss xmm4, dword [ebp - 0x18]
mulss xmm3, dword [edx + ecx + 0x23c]
movss xmm6, dword [ebp - 0x48]
movaps xmm0, xmm3
mulss xmm3, dword [esi + eax + 4]
mulss xmm0, dword [esi + eax]
mulss xmm1, xmm3
mulss xmm4, xmm0
mulss xmm5, xmm0
addss xmm4, dword [ebp - 0x58]
mulss xmm6, xmm0
movss xmm0, dword [ebp - 0x68]
addss xmm5, dword [ebp - 0x54]
addss xmm6, dword [ebp - 0x5c]
mulss xmm0, xmm3
addss xmm4, xmm1
mulss xmm2, xmm3
addss xmm5, xmm0
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm6, xmm2
movaps xmm0, xmm5
mulss xmm0, xmm5
addss xmm0, xmm1
movaps xmm1, xmm6
mulss xmm1, xmm6
addss xmm0, xmm1
call fcn.1000ded0
addss xmm0, dword [0x102bd604]
movss xmm1, dword [0x102bd7ac]
divss xmm1, xmm0
mulss xmm4, xmm1
mulss xmm5, xmm1
ucomiss xmm4, xmm7
movss dword [ebp - 0x30], xmm5
movss dword [ebp - 0x38], xmm4
lahf
mulss xmm6, xmm1
test ah, 0x44
jp 0x10152426
ucomiss xmm5, xmm7
lahf
test ah, 0x44
jp 0x10152426
comiss xmm6, xmm7
xorps xmm2, xmm2
jbe 0x1015241c
movss xmm7, dword [0x102bda60]
jmp 0x10152498
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10152050
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x48], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x101523bb
cmp dword [ecx + 4], 0
jle 0x101523bb
push 0
mov edx, 0xddac019e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x101523b8
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x101523c4
xor edx, edx
test ecx, ecx
je 0x101523ed
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101523d1
cmp esi, 0xddac019e
je 0x1015240e
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
cmp edx, dword [eax + 4]
jge 0x10152050
jmp 0x10152387
mov eax, dword [ebp - 0x48]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10152050
movss xmm7, dword [0x102bd9b4]
jmp 0x10152498
fld dword [ebp - 0x38]
fld dword [ebp - 0x30]
fpatan
movss xmm3, dword [0x102bd970]
movss xmm1, dword [0x102bda6c]
fstp dword [ebp - 0x38]
movss xmm2, dword [ebp - 0x38]
mulss xmm2, xmm3
comiss xmm7, xmm2
jbe 0x10152453
addss xmm2, xmm1
mulss xmm4, xmm4
mulss xmm5, xmm5
addss xmm4, xmm5
movaps xmm0, xmm4
call fcn.1000ded0
xorps xmm6, xmmword [0x102bdf90]
movss dword [ebp - 0x38], xmm6
fld dword [ebp - 0x38]
movss dword [ebp - 0x30], xmm0
xorps xmm0, xmm0
fld dword [ebp - 0x30]
fpatan
fstp dword [ebp - 0x38]
movss xmm7, dword [ebp - 0x38]
mulss xmm7, xmm3
comiss xmm0, xmm7
jbe 0x10152498
addss xmm7, xmm1
mulss xmm2, dword [0x102bd670]
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
call fcn.10136d20
mulss xmm7, dword [0x102bd670]
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x38]
movaps xmm2, xmm7
call fcn.10136d20
movss xmm6, dword [ebp - 0x2c]
movss xmm3, dword [ebp - 0x30]
movss xmm4, dword [ebp - 0x38]
xorps xmm4, xmmword [0x102bdf90]
mulss xmm3, xmm6
mulss xmm6, dword [ebp - 0x20]
movaps xmm1, xmm3
mulss xmm1, xmm3
movaps xmm0, xmm6
mulss xmm0, xmm6
addss xmm0, xmm1
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm0, xmm1
call fcn.1000ded0
addss xmm0, dword [0x102bd604]
movss xmm5, dword [0x102bd7ac]
lea edx, [ebp - 0x9c]
mov eax, dword [0x10bbf240]
lea ecx, [ebp - 0xa8]
push dword [ebx + 0x14]
add eax, 0xaff3cc8c
divss xmm5, xmm0
xor eax, 0x3743f7af
mov eax, dword [eax + 0x13c]
movss xmm0, dword [eax + 0x10c]
mov eax, dword [ebp - 0x3c]
movaps xmm2, xmm5
push dword [ebp - 0x28]
movaps xmm1, xmm5
mulss xmm2, xmm3
push dword [eax + 4]
mulss xmm1, xmm6
push dword [ebp - 0x14]
mulss xmm5, xmm4
mulss xmm2, xmm0
mulss xmm1, xmm0
addss xmm2, dword [ebp - 0xa8]
mulss xmm5, xmm0
addss xmm1, dword [ebp - 0xa4]
addss xmm5, dword [ebp - 0xa0]
movss dword [ebp - 0x9c], xmm2
movss dword [ebp - 0x98], xmm1
movss dword [ebp - 0x94], xmm5
call fcn.10145cb0
add esp, 0x10
test al, al
mov eax, dword [ebp - 0x24]
je 0x101525cb
inc eax
mov dword [ebp - 0x24], eax
test edi, edi
je 0x101525e2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102bd660]
movss dword [edi], xmm0
movss xmm1, dword [ebp - 0x78]
add esi, 0xc
movss xmm2, dword [ebp - 0x84]
xorps xmm7, xmm7
cmp esi, 0x600
jl 0x10152280
mov esi, dword [ebp - 0x14]
mov eax, dword [esi + 0x18]
movq xmm0, qword [esi + 0x10]
mov edi, dword [esi + 8]
mov dword [ebp - 0x78], eax
mov eax, dword [0x10375508]
mov dword [ebp - 0x18], edi
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x10152770
or eax, 1
mov dword [0x10375508], eax
mov dword [ebp - 4], 9
mov eax, dword [0x10371278]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1037127c]
je 0x1015269a
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x1015268c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152660
xor edx, edx
test ecx, ecx
je 0x1015268c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152670
cmp esi, 0x1eee87cc
je 0x101526b8
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1037127c]
jne 0x10152646
xor eax, eax
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov dword [0x1037554c], eax
jmp 0x10152775
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10152758
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152708
cmp dword [ecx + 4], 0
jle 0x10152708
push 0
mov edx, 0x559d81af
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10152705
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152711
xor edx, edx
test ecx, ecx
je 0x1015273c
nop
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152720
cmp esi, 0x559d81af
je 0x1015275f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x101526d1
mov eax, edi
jmp 0x1015269c
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015269c
mov eax, dword [0x1037554c]
mov ecx, dword [ebp - 0x78]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
lea eax, [esi + 0x1c]
mov edx, dword [0x103bfe04]
mov ecx, edi
push eax
call edx
mov eax, dword [esi + 0x30]
movq xmm0, qword [esi + 0x28]
mov dword [ebp - 0x78], eax
mov eax, dword [0x10373c28]
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x101528f0
or eax, 1
mov dword [0x10373c28], eax
mov dword [ebp - 4], 0xa
mov eax, dword [0x10371278]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1037127c]
je 0x1015281a
nop dword [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x1015280c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101527e3
xor edx, edx
test ecx, ecx
je 0x1015280c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101527f0
cmp esi, 0x72e242a1
je 0x10152838
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1037127c]
jne 0x101527d0
xor eax, eax
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov dword [0x10373cc0], eax
jmp 0x101528f5
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x101528d8
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152888
cmp dword [ecx + 4], 0
jle 0x10152888
push 0
mov edx, 0xf3c2c786
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10152885
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152891
xor edx, edx
test ecx, ecx
je 0x101528bc
nop
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101528a0
cmp esi, 0xf3c2c786
je 0x101528df
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x10152851
mov eax, edi
jmp 0x1015281c
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015281c
mov eax, dword [0x10373cc0]
mov ecx, dword [ebp - 0x78]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov eax, dword [esi + 0x48]
movq xmm0, qword [esi + 0x40]
mov dword [ebp - 0x78], eax
mov eax, dword [0x103754d4]
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x10152a60
or eax, 1
mov dword [0x103754d4], eax
mov dword [ebp - 4], 0xb
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x3c], eax
cmp eax, ecx
je 0x1015298c
nop
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1015297f
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152953
xor edx, edx
test ecx, ecx
je 0x10152979
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152960
cmp esi, 0x1eee87cc
je 0x101529aa
mov ecx, dword [0x1037127c]
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, ecx
jne 0x10152940
xor eax, eax
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov dword [0x10373c98], eax
jmp 0x10152a65
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10152a48
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x101529fa
cmp dword [ecx + 4], 0
jle 0x101529fa
push 0
mov edx, 0x7d388d3e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x101529f7
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152a03
xor edx, edx
test ecx, ecx
je 0x10152a2c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152a10
cmp esi, 0x7d388d3e
je 0x10152a4f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x101529c3
mov eax, edi
jmp 0x1015298e
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015298e
mov eax, dword [0x10373c98]
mov ecx, dword [ebp - 0x78]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov eax, dword [esi + 0x3c]
movq xmm0, qword [esi + 0x34]
mov dword [ebp - 0x78], eax
mov eax, dword [0x10373c60]
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x10152bd0
or eax, 1
mov dword [0x10373c60], eax
mov dword [ebp - 4], 0xc
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x3c], eax
cmp eax, ecx
je 0x10152afc
nop
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10152aef
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152ac3
xor edx, edx
test ecx, ecx
je 0x10152ae9
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152ad0
cmp esi, 0x1eee87cc
je 0x10152b17
mov ecx, dword [0x1037127c]
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, ecx
jne 0x10152ab0
xor eax, eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov dword [0x10373c78], eax
jmp 0x10152bd5
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10152bb8
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152b67
cmp dword [ecx + 4], 0
jle 0x10152b67
push 0
mov edx, 0xe57f80c
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10152b64
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152b70
xor edx, edx
test ecx, ecx
je 0x10152b9c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152b80
cmp esi, 0xe57f80c
je 0x10152bbf
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x10152b30
mov eax, edi
jmp 0x10152afe
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x10152afe
mov eax, dword [0x10373c78]
mov ecx, dword [ebp - 0x78]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov ecx, dword [0x10373cb4]
test cl, 1
jne 0x10152d2e
or ecx, 1
mov dword [0x10373cb4], ecx
mov dword [ebp - 4], 0xd
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x3c], eax
cmp eax, ecx
je 0x10152c5e
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10152c51
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152c25
xor edx, edx
test ecx, ecx
je 0x10152c4b
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152c32
cmp esi, 0x54aff69
je 0x10152c7e
mov ecx, dword [0x1037127c]
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, ecx
jne 0x10152c12
xor edi, edi
lea edx, [edi + 0x1c]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x10373cb4]
mov edi, dword [ebp - 0x18]
mov dword [0x10373c2c], edx
jmp 0x10152d34
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10152c60
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152cca
cmp dword [ecx + 4], 0
jle 0x10152cca
push 0
mov edx, 0xddac019e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10152cc7
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152cd3
xor edx, edx
test ecx, ecx
je 0x10152cfc
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152ce0
cmp esi, 0xddac019e
je 0x10152d1d
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jge 0x10152c60
jmp 0x10152c93
mov eax, dword [ebp - 0x84]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10152c60
mov edx, dword [0x10373c2c]
lea eax, [edi + edx]
test eax, eax
je 0x10152d6a
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [0x103bfd24]
test eax, eax
je 0x10152d55
add eax, 0xa
mov eax, dword [eax]
mov eax, dword [eax]
dec eax
mov dword [edi + 0x2690], eax
mov dword [edi + 0x2924], 0xff7fffff
mov esi, dword [ebp - 0x14]
add esi, 0x50
mov dword [ebp - 0x30], esi
test cl, 1
jne 0x10152e01
or ecx, 1
mov dword [0x10373cb4], ecx
mov dword [ebp - 4], 0xe
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x3c], eax
cmp eax, ecx
je 0x10152df0
nop
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10152de3
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152db3
xor edx, edx
test ecx, ecx
je 0x10152ddd
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152dc0
cmp esi, 0x54aff69
je 0x10152e5c
mov ecx, dword [0x1037127c]
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, ecx
jne 0x10152da0
xor edi, edi
mov esi, dword [ebp - 0x30]
lea edx, [edi + 0x1c]
mov edi, dword [ebp - 0x18]
mov dword [0x10373c2c], edx
add edx, edi
je 0x10152e2f
mov eax, dword [edi + 0x2920]
mov edi, dword [edi + 0x2914]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x18]
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 0x2920]
mov edi, dword [edx]
mov esi, dword [ebp - 0x30]
lea ecx, [eax + eax*2]
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
movd xmm0, dword [ebp - 0x24]
mov eax, dword [ebx + 0x18]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102bd660]
comiss xmm0, dword [eax]
setae al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10152df2
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152ea8
cmp dword [ecx + 4], 0
jle 0x10152ea8
push 0
mov edx, 0xddac019e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x10152ea5
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x20]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152eb1
xor edx, edx
test ecx, ecx
je 0x10152edc
nop
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152ec0
cmp esi, 0xddac019e
je 0x10152efd
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jge 0x10152df2
jmp 0x10152e71
mov eax, dword [ebp - 0x84]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10152df2