Function at 0x10152030
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 0x10274c17
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
push esi
push edi
mov eax, dword [0x103230ac]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], edx
mov edi, ecx
mov dword [ebp - 0x14], edi
mov ecx, dword [0x110efb3c]
mov eax, dword [0x10c0dd10]
test cl, 1
jne 0x101520a9
or ecx, 1
mov dword [0x110efb3c], ecx
lea ecx, [eax + 0x72c821ae]
xor ecx, 0x43f50f5d
mov edx, dword [ecx + 0x1a4]
mov dword [0x110efb34], edx
jmp 0x101520af
mov edx, dword [0x110efb34]
test edx, edx
je 0x101520c1
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + 0x30]
xor ecx, edx
jne 0x10152151
lea esi, [eax + 0x72c821ae]
mov dword [ebp - 0x3c], 0xa390
xor ecx, ecx
xor esi, 0x43f50f5d
mov dword [ebp - 0x24], ecx
mov edx, 0xd3b0
mov ecx, dword [0x10842c90]
add ecx, 0x5e61fcb2
mov eax, dword [esi + 0x140]
xor ecx, 0x4a535352
mov dword [ebp - 0x34], ecx
movss xmm0, dword [esi + 0x44]
addss xmm0, dword [0x1030b6f4]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x14]
cmp byte [eax + 0xc], 0
cmove edx, dword [ebp - 0x3c]
add edx, eax
mov eax, 0x1b4e81b5
mov dword [ebp - 0x28], edx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x96
sub ecx, eax
mov eax, dword [ebp - 0x34]
imul ecx, ecx, 0xc8
mov dword [ebp - 0x54], ecx
comiss xmm0, dword [ecx + eax + 0x23c]
jb 0x10152167
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 eax, dword [0x103c3ba8]
mov esi, dword [edi + 8]
mov dword [ebp - 0x20], esi
test al, 1
jne 0x101522bd
or eax, 1
mov dword [0x103c3ba8], eax
mov dword [ebp - 4], 0
mov eax, dword [0x103bf630]
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x103bf634]
je 0x101521ea
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x101521dc
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101521b3
xor edx, edx
test ecx, ecx
je 0x101521dc
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101521c0
cmp esi, 0x1eee87cc
je 0x10152203
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
cmp eax, dword [0x103bf634]
jne 0x101521a0
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x103c3bec], eax
jmp 0x101522c2
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x2c], edi
cmp dword [eax + 4], edi
jle 0x101522a8
xor ecx, ecx
mov dword [ebp - 0x30], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x3c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152254
cmp dword [ecx + 4], 0
jle 0x10152254
push 0
mov edx, 0x559d81af
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10152251
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 0x10152260
xor edx, edx
test ecx, ecx
je 0x1015228c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152270
cmp esi, 0x559d81af
je 0x101522af
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 0x10152220
mov eax, edi
jmp 0x101521ec
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x101521ec
mov eax, dword [0x103c3bec]
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 [0x103c22c8]
test al, 1
jne 0x1015243d
or eax, 1
mov dword [0x103c22c8], eax
mov dword [ebp - 4], 1
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x1015236a
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x1015235c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152330
xor edx, edx
test ecx, ecx
je 0x1015235c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152340
cmp esi, 0x72e242a1
je 0x10152383
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x10152317
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x103c2360], eax
jmp 0x10152442
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10152428
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x3c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x101523d4
cmp dword [ecx + 4], 0
jle 0x101523d4
push 0
mov edx, 0xf3c2c786
call fcn.1013c990
add esp, 4
test eax, eax
je 0x101523d1
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 0x101523e0
xor edx, edx
test ecx, ecx
je 0x1015240c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101523f0
cmp esi, 0xf3c2c786
je 0x1015242f
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 0x101523a0
mov eax, edi
jmp 0x1015236c
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015236c
mov eax, dword [0x103c2360]
movq xmm0, qword [esi + eax]
movq qword [edi + 0x28], xmm0
mov eax, dword [esi + eax + 8]
mov dword [edi + 0x30], eax
mov eax, dword [0x103c2300]
test al, 1
jne 0x1015259d
or eax, 1
mov dword [0x103c2300], eax
mov dword [ebp - 4], 2
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x101524ca
nop
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x101524bc
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152493
xor edx, edx
test ecx, ecx
je 0x101524bc
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101524a0
cmp esi, 0x1eee87cc
je 0x101524e3
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x10152480
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x103c2318], eax
jmp 0x101525a2
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10152588
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x3c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152534
cmp dword [ecx + 4], 0
jle 0x10152534
push 0
mov edx, 0xe57f80c
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10152531
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 0x10152540
xor edx, edx
test ecx, ecx
je 0x1015256c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152550
cmp esi, 0xe57f80c
je 0x1015258f
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 0x10152500
mov eax, edi
jmp 0x101524cc
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x101524cc
mov eax, dword [0x103c2318]
movq xmm0, qword [esi + eax]
movq qword [edi + 0x34], xmm0
mov eax, dword [esi + eax + 8]
mov dword [edi + 0x3c], eax
mov eax, dword [0x103c3b74]
test al, 1
jne 0x101526fd
or eax, 1
mov dword [0x103c3b74], eax
mov dword [ebp - 4], 3
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x1015262a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x1015261c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101525f3
xor edx, edx
test ecx, ecx
je 0x1015261c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152600
cmp esi, 0x1eee87cc
je 0x10152643
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x101525e0
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x20]
mov dword [0x103c2338], eax
jmp 0x10152702
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x101526e8
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x3c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152694
cmp dword [ecx + 4], 0
jle 0x10152694
push 0
mov edx, 0x7d388d3e
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10152691
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 0x101526a0
xor edx, edx
test ecx, ecx
je 0x101526cc
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101526b0
cmp esi, 0x7d388d3e
je 0x101526ef
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 0x10152660
mov eax, edi
jmp 0x1015262c
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015262c
mov eax, dword [0x103c2338]
movq xmm0, qword [esi + eax]
movq qword [edi + 0x40], xmm0
mov eax, dword [esi + eax + 8]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0x2920]
mov esi, dword [esi + 0x2914]
lea ecx, [eax + eax*2]
lea eax, [edi + 0x50]
shl ecx, 4
mov edi, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x14]
rep movsb byte es:[edi], byte [esi]
mov edi, dword [eax + 8]
mov eax, dword [edi + 8]
mov esi, dword [0x10842cb8]
add esi, 0x772b78e1
mov dword [ebp - 0x18], edi
lea ecx, [edi + 8]
xor esi, 0xa30d42b2
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x394
add eax, esi
je 0x10152e34
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 - 0x50], eax
mov eax, dword [0x103c3ba8]
movq qword [ebp - 0x70], xmm2
movups xmmword [ebp - 0x90], xmm2
test al, 1
jne 0x101528ed
or eax, 1
mov dword [0x103c3ba8], eax
mov dword [ebp - 4], 4
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x1015281a
nop
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 [edi + ecx], 0
jne 0x101527e3
xor edx, edx
test ecx, ecx
je 0x1015280c
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101527f0
cmp esi, 0x1eee87cc
je 0x1015283a
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x101527d0
xor eax, eax
mov esi, dword [ebx + 0x14]
mov dword [ebp - 4], 0xffffffff
movups xmm2, xmmword [ebp - 0x90]
mov edi, dword [ebp - 0x18]
mov dword [0x103c3bec], eax
jmp 0x101528f2
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x101528d8
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 0x10152887
cmp dword [ecx + 4], 0
jle 0x10152887
push 0
mov edx, 0x559d81af
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10152884
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 0x10152890
xor edx, edx
test ecx, ecx
je 0x101528bc
nop dword [eax]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101528a0
cmp esi, 0x559d81af
je 0x101528df
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 0x10152853
mov eax, edi
jmp 0x1015281c
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015281c
mov eax, dword [0x103c3bec]
mov ecx, dword [ebp - 0x50]
movq qword [edi + eax], xmm2
mov dword [edi + eax + 8], ecx
lea ecx, [ebp - 0x70]
mov eax, dword [0x1040e4ac]
push ecx
mov ecx, edi
call eax
mov eax, dword [esi + 0xcc]
movq xmm0, qword [esi + 0xc4]
mov dword [ebp - 0x48], eax
mov eax, dword [0x103c3b74]
movq qword [ebp - 0x88], xmm0
test al, 1
jne 0x10152a69
or eax, 1
mov dword [0x103c3b74], eax
mov dword [ebp - 4], 5
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x1015299a
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x1015298c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x10152963
xor edx, edx
test ecx, ecx
je 0x1015298c
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152970
cmp esi, 0x1eee87cc
je 0x101529bb
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x10152950
xor eax, eax
mov esi, dword [ebx + 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x88]
mov edi, dword [ebp - 0x18]
mov dword [0x103c2338], eax
jmp 0x10152a6e
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10152a54
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x50], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152a08
cmp dword [ecx + 4], 0
jle 0x10152a08
push 0
mov edx, 0x7d388d3e
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10152a05
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 0x10152a11
xor edx, edx
test ecx, ecx
je 0x10152a3c
nop
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152a20
cmp esi, 0x7d388d3e
je 0x10152a5b
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 0x101529d4
mov eax, edi
jmp 0x1015299c
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015299c
mov eax, dword [0x103c2338]
mov ecx, dword [ebp - 0x48]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov eax, dword [esi + 0xc0]
movq xmm0, qword [esi + 0xb8]
mov dword [ebp - 0x48], eax
mov eax, dword [0x103c2300]
movq qword [ebp - 0x88], xmm0
test al, 1
jne 0x10152bdd
or eax, 1
mov dword [0x103c2300], eax
mov dword [ebp - 4], 6
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x10152b0a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10152afc
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152ad3
xor edx, edx
test ecx, ecx
je 0x10152afc
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152ae0
cmp esi, 0x1eee87cc
je 0x10152b28
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x10152ac0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x88]
mov edi, dword [ebp - 0x18]
mov dword [0x103c2318], eax
jmp 0x10152be2
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10152bc8
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x50], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152b75
cmp dword [ecx + 4], 0
jle 0x10152b75
push 0
mov edx, 0xe57f80c
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10152b72
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 0x10152b80
xor edx, edx
test ecx, ecx
je 0x10152bac
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152b90
cmp esi, 0xe57f80c
je 0x10152bcf
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 0x10152b41
mov eax, edi
jmp 0x10152b0c
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x10152b0c
mov eax, dword [0x103c2318]
mov ecx, dword [ebp - 0x48]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov ecx, dword [0x103c2354]
test cl, 1
jne 0x10152d3b
or ecx, 1
mov dword [0x103c2354], ecx
mov dword [ebp - 4], 7
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x10152c6a
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10152c5c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152c33
xor edx, edx
test ecx, ecx
je 0x10152c5c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152c40
cmp esi, 0x54aff69
je 0x10152c8a
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x10152c20
xor edi, edi
lea edx, [edi + 0x1c]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x103c2354]
mov edi, dword [ebp - 0x18]
mov dword [0x103c22cc], edx
jmp 0x10152d41
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10152c6c
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x50], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10152cd4
cmp dword [ecx + 4], 0
jle 0x10152cd4
push 0
mov edx, 0xddac019e
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10152cd1
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 0x10152ce0
xor edx, edx
test ecx, ecx
je 0x10152d0c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152cf0
cmp esi, 0xddac019e
je 0x10152d2d
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 0x10152c6c
jmp 0x10152ca0
mov eax, dword [ebp - 0x50]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10152c6c
mov edx, dword [0x103c22cc]
lea eax, [edi + edx]
test eax, eax
je 0x10152d77
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [0x1040e3cc]
test eax, eax
je 0x10152d62
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 0x10152e03
or ecx, 1
mov dword [0x103c2354], ecx
mov dword [ebp - 4], 8
mov eax, dword [0x103bf630]
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
je 0x10152dee
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10152de0
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152db3
xor edx, edx
test ecx, ecx
je 0x10152de0
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152dc0
cmp esi, 0x54aff69
je 0x1015311a
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x103bf634]
jne 0x10152da0
xor edi, edi
lea edx, [edi + 0x1c]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x18]
mov dword [0x103c22cc], edx
add edx, edi
je 0x10152e34
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 - 0x38]
subss xmm0, dword [eax + 0x20]
subss xmm3, dword [eax + 0x18]
subss xmm2, dword [eax + 0x1c]
movss dword [ebp - 0x48], xmm0
movaps xmm1, xmm3
movss dword [ebp - 0x2c], xmm3
movaps xmm0, xmm2
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm0, xmm1
call fcn.1000e050
divss xmm2, xmm3
movss dword [ebp - 0x50], xmm0
movaps xmm0, xmm2
call fcn.102627be
mulss xmm0, dword [0x1030ba40]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [0x1030bc10]
divss xmm0, dword [ebp - 0x50]
mulss xmm0, dword [ebp - 0x48]
call fcn.102627be
movss dword [ebp - 0x50], xmm0
xorps xmm7, xmm7
movss xmm0, dword [ebp - 0x2c]
comiss xmm0, xmm7
movss xmm0, dword [ebp - 0x30]
jb 0x10152ee0
addss xmm0, dword [0x1030bae8]
mulss xmm0, dword [0x1030b738]
lea edx, [ebp - 0x48]
lea ecx, [ebp - 0x20]
movaps xmm2, xmm0
call fcn.101379c0
movss xmm2, dword [ebp - 0x50]
lea edx, [ebp - 0x50]
xorps xmm2, xmmword [0x1030c060]
lea ecx, [ebp - 0x2c]
call fcn.101379c0
xorps xmm2, xmm2
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x1c]
call fcn.101379c0
movss xmm5, dword [ebp - 0x50]
xor esi, esi
movss xmm2, dword [ebp - 0x2c]
movaps xmm1, xmm5
mulss xmm1, dword [ebp - 0x20]
movaps xmm0, xmm5
mov edi, dword [ebx + 0x20]
movss xmm4, dword [ebp - 0x48]
movss xmm3, dword [ebp - 0x1c]
movss xmm7, dword [ebp - 0x30]
mulss xmm7, dword [ebp - 0x20]
mov dword [ebp - 0x9c], 0
mulss xmm0, xmm4
mov dword [ebp - 0x98], 0
movss dword [ebp - 0x5c], xmm1
movaps xmm1, xmm2
xorps xmm1, xmmword [0x1030c060]
movss dword [ebp - 0x58], xmm0
movaps xmm0, xmm4
movss dword [ebp - 0x60], xmm1
movaps xmm1, xmm3
mulss xmm1, xmm2
mov dword [ebp - 0x94], 0
movss xmm6, dword [ebp - 0x30]
mulss xmm0, xmm1
subss xmm7, xmm0
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [0x1030bc10]
mulss xmm0, xmm4
movss dword [ebp - 0x50], xmm7
movaps xmm7, xmm4
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x20]
mulss xmm0, xmm1
movss xmm1, dword [ebp - 0x1c]
subss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x1030bc10]
mulss xmm0, xmm5
movss dword [ebp - 0x1c], xmm1
movaps xmm1, xmm6
mulss xmm1, xmm2
movss xmm2, dword [ebp - 0x20]
movss dword [ebp - 0x48], xmm0
movaps xmm0, xmm3
mulss xmm0, xmm2
mulss xmm7, xmm1
mulss xmm2, xmm1
mulss xmm3, xmm4
addss xmm7, xmm0
mulss xmm6, xmm5
subss xmm2, xmm3
movss dword [ebp - 0x68], xmm7
xorps xmm7, xmm7
movss dword [ebp - 0x78], xmm6
movss dword [ebp - 0x84], xmm2
mov eax, dword [0x103bf668]
movaps xmm1, xmm2
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x54]
movss xmm5, dword [ebp - 0x50]
movss xmm3, dword [esi + eax + 8]
movss xmm4, dword [ebp - 0x1c]
mulss xmm3, dword [edx + ecx + 0x23c]
movss xmm6, dword [ebp - 0x48]
movss xmm2, dword [ebp - 0x78]
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 - 0x5c]
mulss xmm6, xmm0
movss xmm0, dword [ebp - 0x68]
addss xmm5, dword [ebp - 0x58]
addss xmm6, dword [ebp - 0x60]
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.1000e050
addss xmm0, dword [0x1030b6cc]
movss xmm1, dword [0x1030b86c]
divss xmm1, xmm0
mulss xmm4, xmm1
mulss xmm5, xmm1
ucomiss xmm4, xmm7
movss dword [ebp - 0x2c], xmm5
movss dword [ebp - 0x30], xmm4
lahf
mulss xmm6, xmm1
test ah, 0x44
jp 0x101531d5
ucomiss xmm5, xmm7
lahf
test ah, 0x44
jp 0x101531d5
comiss xmm6, xmm7
xorps xmm2, xmm2
jbe 0x101531cb
movss xmm7, dword [0x1030bb24]
jmp 0x10153247
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x10152df0
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x50], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10153167
cmp dword [ecx + 4], 0
jle 0x10153167
push 0
mov edx, 0xddac019e
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10153164
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 0x10153170
xor edx, edx
test ecx, ecx
je 0x1015319c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153180
cmp esi, 0xddac019e
je 0x101531bd
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 0x10152df0
jmp 0x10153133
mov eax, dword [ebp - 0x50]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10152df0
movss xmm7, dword [0x1030ba80]
jmp 0x10153247
fld dword [ebp - 0x30]
fld dword [ebp - 0x2c]
fpatan
movss xmm3, dword [0x1030ba3c]
movss xmm1, dword [0x1030bb34]
fstp dword [ebp - 0x30]
movss xmm2, dword [ebp - 0x30]
mulss xmm2, xmm3
comiss xmm7, xmm2
jbe 0x10153202
addss xmm2, xmm1
mulss xmm4, xmm4
mulss xmm5, xmm5
addss xmm4, xmm5
movaps xmm0, xmm4
call fcn.1000e050
xorps xmm6, xmmword [0x1030c060]
movss dword [ebp - 0x30], xmm6
fld dword [ebp - 0x30]
movss dword [ebp - 0x2c], xmm0
xorps xmm0, xmm0
fld dword [ebp - 0x2c]
fpatan
fstp dword [ebp - 0x30]
movss xmm7, dword [ebp - 0x30]
mulss xmm7, xmm3
comiss xmm0, xmm7
jbe 0x10153247
addss xmm7, xmm1
mulss xmm2, dword [0x1030b738]
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
call fcn.101379c0
mulss xmm7, dword [0x1030b738]
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x18]
movaps xmm2, xmm7
call fcn.101379c0
movss xmm6, dword [ebp - 0x2c]
movss xmm3, dword [ebp - 0x30]
movss xmm4, dword [ebp - 0x18]
xorps xmm4, xmmword [0x1030c060]
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.1000e050
addss xmm0, dword [0x1030b6cc]
movss xmm5, dword [0x1030b86c]
lea edx, [ebp - 0x9c]
mov eax, dword [0x10c0dd10]
lea ecx, [ebp - 0xa8]
push dword [ebx + 0x14]
add eax, 0x72c821ae
divss xmm5, xmm0
xor eax, 0x43f50f5d
mov eax, dword [eax + 0x13c]
movss xmm0, dword [eax + 0x10c]
mov eax, dword [ebp - 0x38]
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.10146ab0
add esp, 0x10
test al, al
mov eax, dword [ebp - 0x24]
je 0x1015337a
inc eax
mov dword [ebp - 0x24], eax
test edi, edi
je 0x10153391
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1030b728]
movss dword [edi], xmm0
movss xmm2, dword [ebp - 0x84]
add esi, 0xc
xorps xmm7, xmm7
cmp esi, 0x600
jl 0x10153024
mov edi, dword [ebp - 0x14]
mov eax, dword [edi + 0x18]
movq xmm0, qword [edi + 0x10]
mov esi, dword [edi + 8]
mov dword [ebp - 0x78], eax
mov eax, dword [0x103c3ba8]
mov dword [ebp - 0x18], esi
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x10153510
or eax, 1
mov dword [0x103c3ba8], eax
mov dword [ebp - 4], 9
mov eax, dword [0x103bf630]
mov dword [ebp - 0x38], eax
cmp eax, dword [0x103bf634]
je 0x1015343a
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x1015342c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10153403
xor edx, edx
test ecx, ecx
je 0x1015342c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153410
cmp esi, 0x1eee87cc
je 0x10153458
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
cmp eax, dword [0x103bf634]
jne 0x101533f0
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov esi, dword [ebp - 0x18]
mov dword [0x103c3bec], eax
jmp 0x10153515
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x38], edi
cmp dword [eax + 4], edi
jle 0x101534f8
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x101534a8
cmp dword [ecx + 4], 0
jle 0x101534a8
push 0
mov edx, 0x559d81af
call fcn.1013c990
add esp, 4
test eax, eax
je 0x101534a5
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 0x101534b1
xor edx, edx
test ecx, ecx
je 0x101534dc
nop
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101534c0
cmp esi, 0x559d81af
je 0x101534ff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [eax + 4]
jl 0x10153471
mov eax, edi
jmp 0x1015343c
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015343c
mov eax, dword [0x103c3bec]
mov ecx, dword [ebp - 0x78]
movq qword [esi + eax], xmm0
mov dword [esi + eax + 8], ecx
lea ecx, [edi + 0x1c]
mov eax, dword [0x1040e4ac]
push ecx
mov ecx, esi
call eax
mov eax, dword [edi + 0x30]
movq xmm0, qword [edi + 0x28]
mov dword [ebp - 0x78], eax
mov eax, dword [0x103c22c8]
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x10153690
or eax, 1
mov dword [0x103c22c8], eax
mov dword [ebp - 4], 0xa
mov eax, dword [0x103bf630]
mov dword [ebp - 0x38], eax
cmp eax, dword [0x103bf634]
je 0x101535ba
nop word [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x101535ac
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10153583
xor edx, edx
test ecx, ecx
je 0x101535ac
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153590
cmp esi, 0x72e242a1
je 0x101535d8
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
cmp eax, dword [0x103bf634]
jne 0x10153570
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov esi, dword [ebp - 0x18]
mov dword [0x103c2360], eax
jmp 0x10153695
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x38], edi
cmp dword [eax + 4], edi
jle 0x10153678
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10153628
cmp dword [ecx + 4], 0
jle 0x10153628
push 0
mov edx, 0xf3c2c786
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10153625
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 0x10153631
xor edx, edx
test ecx, ecx
je 0x1015365c
nop
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153640
cmp esi, 0xf3c2c786
je 0x1015367f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [eax + 4]
jl 0x101535f1
mov eax, edi
jmp 0x101535bc
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x101535bc
mov eax, dword [0x103c2360]
mov ecx, dword [ebp - 0x78]
movq qword [esi + eax], xmm0
mov dword [esi + eax + 8], ecx
mov eax, dword [edi + 0x48]
movq xmm0, qword [edi + 0x40]
mov dword [ebp - 0x78], eax
mov eax, dword [0x103c3b74]
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x10153800
or eax, 1
mov dword [0x103c3b74], eax
mov dword [ebp - 4], 0xb
mov eax, dword [0x103bf630]
mov ecx, dword [0x103bf634]
mov dword [ebp - 0x38], eax
cmp eax, ecx
je 0x1015372c
nop
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1015371f
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101536f3
xor edx, edx
test ecx, ecx
je 0x10153719
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153700
cmp esi, 0x1eee87cc
je 0x1015374a
mov ecx, dword [0x103bf634]
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x101536e0
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov esi, dword [ebp - 0x18]
mov dword [0x103c2338], eax
jmp 0x10153805
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x38], edi
cmp dword [eax + 4], edi
jle 0x101537e8
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1015379a
cmp dword [ecx + 4], 0
jle 0x1015379a
push 0
mov edx, 0x7d388d3e
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10153797
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 0x101537a3
xor edx, edx
test ecx, ecx
je 0x101537cc
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101537b0
cmp esi, 0x7d388d3e
je 0x101537ef
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [eax + 4]
jl 0x10153763
mov eax, edi
jmp 0x1015372e
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015372e
mov eax, dword [0x103c2338]
mov ecx, dword [ebp - 0x78]
movq qword [esi + eax], xmm0
mov dword [esi + eax + 8], ecx
mov eax, dword [edi + 0x3c]
movq xmm0, qword [edi + 0x34]
mov dword [ebp - 0x78], eax
mov eax, dword [0x103c2300]
movq qword [ebp - 0x70], xmm0
test al, 1
jne 0x10153970
or eax, 1
mov dword [0x103c2300], eax
mov dword [ebp - 4], 0xc
mov eax, dword [0x103bf630]
mov ecx, dword [0x103bf634]
mov dword [ebp - 0x38], eax
cmp eax, ecx
je 0x1015389c
nop
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1015388f
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10153863
xor edx, edx
test ecx, ecx
je 0x10153889
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153870
cmp esi, 0x1eee87cc
je 0x101538b7
mov ecx, dword [0x103bf634]
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10153850
xor eax, eax
mov dword [ebp - 4], 0xffffffff
movq xmm0, qword [ebp - 0x70]
mov esi, dword [ebp - 0x18]
mov dword [0x103c2318], eax
jmp 0x10153975
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x38], edi
cmp dword [eax + 4], edi
jle 0x10153958
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10153907
cmp dword [ecx + 4], 0
jle 0x10153907
push 0
mov edx, 0xe57f80c
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10153904
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 0x10153910
xor edx, edx
test ecx, ecx
je 0x1015393c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153920
cmp esi, 0xe57f80c
je 0x1015395f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [eax + 4]
jl 0x101538d0
mov eax, edi
jmp 0x1015389e
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
jmp 0x1015389e
mov eax, dword [0x103c2318]
mov ecx, dword [ebp - 0x78]
movq qword [esi + eax], xmm0
mov dword [esi + eax + 8], ecx
mov ecx, dword [0x103c2354]
test cl, 1
jne 0x10153ace
or ecx, 1
mov dword [0x103c2354], ecx
mov dword [ebp - 4], 0xd
mov eax, dword [0x103bf630]
mov ecx, dword [0x103bf634]
mov dword [ebp - 0x38], eax
cmp eax, ecx
je 0x101539fe
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x101539f1
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101539c5
xor edx, edx
test ecx, ecx
je 0x101539eb
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101539d2
cmp esi, 0x54aff69
je 0x10153a1e
mov ecx, dword [0x103bf634]
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x101539b2
xor edi, edi
lea edx, [edi + 0x1c]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x103c2354]
mov esi, dword [ebp - 0x18]
mov dword [0x103c22cc], edx
jmp 0x10153ad4
mov eax, dword [ebp - 0x20]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x38], edi
cmp dword [eax + 4], edi
jle 0x10153a00
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10153a6a
cmp dword [ecx + 4], 0
jle 0x10153a6a
push 0
mov edx, 0xddac019e
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10153a67
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 0x10153a73
xor edx, edx
test ecx, ecx
je 0x10153a9c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153a80
cmp esi, 0xddac019e
je 0x10153abd
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [eax + 4]
jge 0x10153a00
jmp 0x10153a33
mov eax, dword [ebp - 0x84]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10153a00
mov edx, dword [0x103c22cc]
lea eax, [esi + edx]
test eax, eax
je 0x10153b0a
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [0x1040e3cc]
test eax, eax
je 0x10153af5
add eax, 0xa
mov eax, dword [eax]
mov eax, dword [eax]
dec eax
mov dword [esi + 0x2690], eax
mov dword [esi + 0x2924], 0xff7fffff
test cl, 1
jne 0x10153b93
or ecx, 1
mov dword [0x103c2354], ecx
mov dword [ebp - 4], 0xe
mov eax, dword [0x103bf630]
mov ecx, dword [0x103bf634]
mov dword [ebp - 0x38], eax
cmp eax, ecx
je 0x10153b85
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10153b78
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10153b48
xor edx, edx
test ecx, ecx
je 0x10153b72
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153b55
cmp esi, 0x54aff69
je 0x10153bf1
mov ecx, dword [0x103bf634]
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
cmp eax, ecx
jne 0x10153b35
xor edi, edi
mov esi, dword [ebp - 0x18]
lea edx, [edi + 0x1c]
mov dword [0x103c22cc], edx
add edx, esi
je 0x10153bc4
mov eax, dword [esi + 0x2920]
mov edi, dword [esi + 0x2914]
mov esi, dword [ebp - 0x3c]
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 - 0x3c]
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 [0x1030b728]
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 - 0x38], edi
cmp dword [eax + 4], edi
jle 0x10153b87
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10153c3d
cmp dword [ecx + 4], 0
jle 0x10153c3d
push 0
mov edx, 0xddac019e
call fcn.1013c990
add esp, 4
test eax, eax
je 0x10153c3a
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 0x10153c46
xor edx, edx
test ecx, ecx
je 0x10153c6f
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10153c53
cmp esi, 0xddac019e
je 0x10153c90
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
cmp edx, dword [eax + 4]
jge 0x10153b87
jmp 0x10153c06
mov eax, dword [ebp - 0x84]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x1c]
jmp 0x10153b87