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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x102325ed
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x102d5080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov ebx, dword [ebp + 8]
mov dword [esi + 0x24], ebx
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
cmp ebx, dword [eax + 0x134]
jne 0x1016dc86
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
jmp 0x1016ddbd
mov eax, dword [0x10375508]
test al, 1
jne 0x1016ddb6
or eax, 1
mov dword [0x10375508], eax
mov dword [ebp - 4], 0
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016dcf4
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1016dce9
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016dcc3
xor edx, edx
test ecx, ecx
je 0x1016dce9
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016dcd0
cmp edi, 0x1eee87cc
je 0x1016dd0d
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016dcb0
xor eax, eax
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov dword [0x1037554c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016ddbb
mov eax, dword [ebp - 0x14]
xor esi, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
cmp dword [eax + 4], esi
jle 0x1016dda4
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016dd57
cmp dword [ecx + 4], 0
jle 0x1016dd57
push 0
mov edx, 0x559d81af
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016dd54
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016dd60
xor edx, edx
test ecx, ecx
je 0x1016dd8c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016dd70
cmp edi, 0x559d81af
je 0x1016ddab
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x1016dd26
mov eax, esi
jmp 0x1016dcf6
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1016dcf6
mov eax, dword [0x1037554c]
add eax, ebx
movq xmm0, qword [eax]
mov ecx, ebx
movq qword [esi + 0x28], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x2990]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x1c], eax
mov dword [esi + 8], 0xd
mov eax, dword [ebx]
call dword [eax + 0x2c]
movq xmm0, qword [eax]
movq qword [esi + 0x34], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x18], eax
mov dword [esi + 4], 0x7ff00
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
cmp ebx, dword [eax + 0x134]
jne 0x1016de26
movss xmm0, dword [eax + 0x40]
jmp 0x1016df60
mov eax, dword [0x10375538]
test al, 1
jne 0x1016df56
or eax, 1
mov dword [0x10375538], eax
mov dword [ebp - 4], 1
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016de94
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016de89
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016de63
xor edx, edx
test ecx, ecx
je 0x1016de89
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016de70
cmp edi, 0x1eee87cc
je 0x1016dead
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016de50
xor eax, eax
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov dword [0x103754f0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016df5b
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp - 0x20], esi
cmp dword [eax + 4], esi
jle 0x1016df44
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016def7
cmp dword [ecx + 4], 0
jle 0x1016def7
push 0
mov edx, 0x7fcb378d
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016def4
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016df00
xor edx, edx
test ecx, ecx
je 0x1016df2c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016df10
cmp edi, 0x7fcb378d
je 0x1016df4b
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016dec6
mov eax, esi
jmp 0x1016de96
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
jmp 0x1016de96
mov eax, dword [0x103754f0]
movss xmm0, dword [eax + ebx]
mov eax, dword [ebp + 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x10], eax
mov eax, dword [0x10375550]
movss dword [esi + 0x14], xmm0
mov word [esi + 1], 0
mov byte [esi + 3], 1
test al, 1
jne 0x1016e0be
or eax, 1
mov dword [0x10375550], eax
mov dword [ebp - 4], 2
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016dfe9
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016dfde
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016dfb8
xor edx, edx
test ecx, ecx
je 0x1016dfde
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016dfc5
cmp edi, 0x54aff69
je 0x1016dfff
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016dfa5
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [0x10375564], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016e0c3
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016e094
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016e049
cmp dword [ecx + 4], 0
jle 0x1016e049
push 0
mov edx, 0xa3316f9
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016e046
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e052
xor edx, edx
test ecx, ecx
je 0x1016e07c
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e060
cmp edi, 0xa3316f9
je 0x1016e0a7
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016e018
mov ebx, dword [ebp + 8]
mov eax, esi
mov dword [0x10375564], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016e0c3
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [0x10375564], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016e0c3
mov eax, dword [0x10375564]
mov edx, dword [ebp - 0x10]
lea esi, [eax + ebx]
add edx, 0x4c
mov ecx, 0x60
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
cmp ebx, dword [eax + 0x134]
jne 0x1016e7a2
cmp byte [0x10359cf8], 0
je 0x1016e7a2
cmp dword [0x10359d00], 2
movss xmm1, dword [0x102bd7ac]
jne 0x1016e11b
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x64], 0x3f800000
lea edx, [eax + 0x4c]
cmp dword [0x10359cfc], 2
jne 0x1016e2c3
mov eax, dword [0x10375568]
test al, 1
jne 0x1016e26a
or eax, 1
mov dword [0x10375568], eax
mov dword [ebp - 4], 3
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016e196
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016e18b
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e165
xor edx, edx
test ecx, ecx
je 0x1016e18b
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e172
cmp edi, 0x72e242a1
je 0x1016e1b0
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016e152
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov dword [0x10373c68], ecx
add edx, 0x4c
mov dword [ebp - 4], 0xffffffff
jmp 0x1016e270
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016e258
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
nop dword [eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016e201
cmp dword [ecx + 4], 0
jle 0x1016e201
push 0
mov edx, 0xa4a37590
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016e1fe
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e210
xor edx, edx
test ecx, ecx
je 0x1016e23c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e220
cmp edi, 0xa4a37590
je 0x1016e25f
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016e1d0
mov ecx, esi
jmp 0x1016e198
mov ecx, dword [ebx + 0x2c]
add ecx, dword [ebp + 0xc]
jmp 0x1016e198
mov ecx, dword [0x10373c68]
mov eax, dword [0x103af244]
mov byte [0x10359a44], 1
and eax, 0x80000001
jns 0x1016e288
dec eax
or eax, 0xfffffffe
inc eax
mov dword [0x103af244], eax
sub eax, 0
je 0x1016e2bb
sub eax, 1
jne 0x1016e2c9
mov dword [edx], 0x3f000000
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0xf0]
mov dword [eax + 0x1c], 0
jmp 0x1016e2c9
mov dword [edx], 0
jmp 0x1016e29d
mov ecx, dword [0x10373c68]
cmp dword [0x10359cfc], 1
jne 0x1016e397
mov eax, dword [0x10bbf240]
mov edx, dword [0x10375568]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0x134]
mov dword [ebp - 0x20], eax
test dl, 1
jne 0x1016e37a
or edx, 1
mov dword [0x10375568], edx
mov dword [ebp - 4], 4
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016e368
nop dword [eax + eax]
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016e35d
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e333
xor edx, edx
test ecx, ecx
je 0x1016e35d
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e340
cmp edi, 0x72e242a1
je 0x1016e51f
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016e320
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov dword [0x10373c68], ecx
mov dword [ebp - 4], 0xffffffff
mov byte [0x10359a44], 0
mov eax, dword [eax + ecx]
shr eax, 0xb
not eax
test al, 1
je 0x1016e397
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x68], 0x3f800000
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
cmp dword [0x10359d00], 1
mov eax, dword [eax + 0x134]
mov dword [ebp - 0x1c], eax
mov eax, dword [eax + 0x2990]
mov dword [ebp - 0x20], eax
jne 0x1016e45f
mov edx, dword [0x10375568]
test dl, 1
jne 0x1016e44c
or edx, 1
mov dword [0x10375568], edx
mov dword [ebp - 4], 5
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016e43a
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016e42f
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e405
xor edx, edx
test ecx, ecx
je 0x1016e42f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e412
cmp edi, 0x72e242a1
je 0x1016e5c6
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016e3f2
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov dword [0x10373c68], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x1c]
test byte [edx + ecx], 1
jne 0x1016e45f
mov dword [eax + 0x170], 0x41700000
test byte [0x10359d04], 1
je 0x1016e47c
mov dword [eax + 0x1a8], 0x41200000
mov dword [eax + 0x170], 0x41200000
cmp dword [0x10359cfc], 3
jne 0x1016e72a
mov eax, dword [0x10375568]
test al, 1
jne 0x1016e509
or eax, 1
mov dword [0x10375568], eax
mov dword [ebp - 4], 6
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016e4fb
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016e4f0
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e4c6
xor edx, edx
test ecx, ecx
je 0x1016e4f0
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e4d3
cmp edi, 0x72e242a1
je 0x1016e67a
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016e4b3
xor eax, eax
mov dword [0x10373c68], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
mov byte [0x10359a44], 1
mov dword [ecx + 0x4c], 0x3f800000
jmp 0x1016e72d
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016e5b4
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016e569
cmp dword [ecx + 4], 0
jle 0x1016e569
push 0
mov edx, 0xa4a37590
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016e566
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e572
xor edx, edx
test ecx, ecx
je 0x1016e59c
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e580
cmp edi, 0xa4a37590
je 0x1016e5bb
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016e538
mov ecx, esi
jmp 0x1016e36a
mov ecx, dword [ebx + 0x2c]
add ecx, dword [ebp + 0xc]
jmp 0x1016e36a
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016e668
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
nop
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016e611
cmp dword [ecx + 4], 0
jle 0x1016e611
push 0
mov edx, 0xa4a37590
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016e60e
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e620
xor edx, edx
test ecx, ecx
je 0x1016e64c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e630
cmp edi, 0xa4a37590
je 0x1016e66f
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016e5e0
mov ecx, esi
jmp 0x1016e43c
mov ecx, dword [ebx + 0x2c]
add ecx, dword [ebp + 0xc]
jmp 0x1016e43c
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016e718
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016e6c4
cmp dword [ecx + 4], 0
jle 0x1016e6c4
push 0
mov edx, 0xa4a37590
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016e6c1
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e6d0
xor edx, edx
test ecx, ecx
je 0x1016e6fc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e6e0
cmp edi, 0xa4a37590
je 0x1016e71f
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016e693
mov eax, esi
jmp 0x1016e4fd
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
jmp 0x1016e4fd
mov ecx, dword [ebp - 0x10]
mov eax, dword [0x10bbf25c]
add eax, 0x8376617e
xor eax, 0xbb244766
cmp dword [eax + 4], 3
jge 0x1016e766
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0xf0]
movss xmm0, dword [eax + 0x10]
movss dword [0x103af248], xmm0
jmp 0x1016e7a2
test byte [0x10359d04], 2
je 0x1016e7a2
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0xf0]
movss xmm0, dword [eax + 0x10]
subss xmm0, dword [0x103af248]
call fcn.1000deb0
comiss xmm1, xmm0
jbe 0x1016e7a2
mov dword [ecx + 0x7c], 0x3f000000
mov eax, dword [0x10373c28]
test al, 1
jne 0x1016e8ec
or eax, 1
mov dword [0x10373c28], eax
mov dword [ebp - 4], 7
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016e814
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016e809
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e7e3
xor edx, edx
test ecx, ecx
je 0x1016e809
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e7f0
cmp edi, 0x72e242a1
je 0x1016e827
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016e7d0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373cc0], eax
jmp 0x1016e8f1
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016e8c8
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016e871
cmp dword [ecx + 4], 0
jle 0x1016e871
push 0
mov edx, 0xf3c2c786
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016e86e
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e880
xor edx, edx
test ecx, ecx
je 0x1016e8ac
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e890
cmp edi, 0xf3c2c786
je 0x1016e8d8
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016e840
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373cc0], eax
jmp 0x1016e8f1
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov dword [0x10373cc0], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016e8f1
mov eax, dword [0x10373cc0]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
movq xmm0, qword [eax + ecx]
movq qword [edx + 0x40], xmm0
mov eax, dword [eax + ecx + 8]
mov dword [edx + 0x48], eax
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0xb0]
mov dword [ebp - 0x20], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x103754ec]
test al, 1
jne 0x1016ea6e
or eax, 1
mov dword [0x103754ec], eax
mov dword [ebp - 4], 8
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016e996
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016e98b
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016e965
xor edx, edx
test ecx, ecx
je 0x1016e98b
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016e972
cmp edi, 0x4e9f1122
je 0x1016e9ac
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016e952
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [0x10373c48], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016ea73
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016ea44
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016e9f6
cmp dword [ecx + 4], 0
jle 0x1016e9f6
push 0
mov edx, 0x940131c5
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016e9f3
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ea00
xor edx, edx
test ecx, ecx
je 0x1016ea2c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ea10
cmp edi, 0x940131c5
je 0x1016ea57
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016e9c5
mov ecx, dword [ebp + 8]
mov eax, esi
mov dword [0x10373c48], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016ea73
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [0x10373c48], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016ea73
mov eax, dword [0x10373c48]
push dword [eax + ecx]
mov ecx, dword [ebp - 0x20]
call dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1016ed77
mov ecx, dword [0x10bbf240]
add ecx, 0xaff3cc8c
xor ecx, 0x3743f7af
mov eax, dword [ecx + 0xb0]
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [0x1037895c]
test al, 1
jne 0x1016ebfc
or eax, 1
mov dword [0x1037895c], eax
mov dword [ebp - 4], 9
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016eb24
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016eb19
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016eaf0
xor edx, edx
test ecx, ecx
je 0x1016eb19
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016eb00
cmp edi, 0xf2f193b3
je 0x1016eb37
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016ead8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10378960], eax
jmp 0x1016ec01
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016ebd8
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016eb81
cmp dword [ecx + 4], 0
jle 0x1016eb81
push 0
mov edx, 0xa822535a
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016eb7e
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016eb90
xor edx, edx
test ecx, ecx
je 0x1016ebbc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016eba0
cmp edi, 0xa822535a
je 0x1016ebe8
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016eb50
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10378960], eax
jmp 0x1016ec01
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov dword [0x10378960], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1016ec01
mov eax, dword [0x10378960]
mov ecx, dword [ebp - 0x20]
push dword [eax + ecx]
mov ecx, dword [ebp - 0x1c]
call dword [ebp - 0x18]
mov dword [ebp + 0x1c], eax
test eax, eax
je 0x1016ed77
mov ecx, dword [0x10375550]
test cl, 1
jne 0x1016ed6a
or ecx, 1
mov dword [0x10375550], ecx
mov dword [ebp - 4], 0xa
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016ec94
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp + 8], eax
test eax, eax
je 0x1016ec89
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ec63
xor edx, edx
test ecx, ecx
je 0x1016ec89
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ec70
cmp edi, 0x54aff69
je 0x1016eca3
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016ec50
mov esi, dword [ebp + 0x1c]
xor eax, eax
mov dword [0x10375564], eax
jmp 0x1016eeb6
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [ebp + 0x14], esi
mov dword [ebp + 0xc], esi
cmp dword [eax + 4], esi
jle 0x1016ed48
xor ecx, ecx
mov dword [ebp + 0x18], ecx
nop dword [eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016ecf1
cmp dword [ecx + 4], 0
jle 0x1016ecf1
push 0
mov edx, 0xa3316f9
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016ecee
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0x14], esi
mov eax, dword [ebp + 8]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ed00
xor edx, edx
test ecx, ecx
je 0x1016ed2c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ed10
cmp edi, 0xa3316f9
je 0x1016ed57
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
inc edx
mov esi, dword [ebp + 0x14]
add ecx, 0x3c
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x18], ecx
cmp edx, dword [eax + 4]
jl 0x1016ecc0
mov eax, esi
mov esi, dword [ebp + 0x1c]
mov dword [0x10375564], eax
jmp 0x1016eeb6
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x1c]
mov dword [0x10375564], eax
jmp 0x1016eeb6
mov eax, dword [0x10375564]
mov esi, dword [ebp + 0x1c]
jmp 0x1016eeb6
mov eax, dword [0x10375550]
test al, 1
jne 0x1016eeae
or eax, 1
mov dword [0x10375550], eax
mov dword [ebp - 4], 0xb
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016ede5
mov eax, dword [ebx]
mov dword [ebp + 0x14], eax
test eax, eax
je 0x1016edda
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016edb4
xor edx, edx
test ecx, ecx
je 0x1016edda
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016edc1
cmp edi, 0x54aff69
je 0x1016edf1
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016eda1
xor eax, eax
mov dword [0x10375564], eax
jmp 0x1016eeb3
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x18], esi
cmp dword [eax + 4], esi
jle 0x1016ee98
xor ecx, ecx
mov dword [ebp + 0x1c], ecx
nop word [eax + eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016ee41
cmp dword [ecx + 4], 0
jle 0x1016ee41
push 0
mov edx, 0xa3316f9
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016ee3e
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ee50
xor edx, edx
test ecx, ecx
je 0x1016ee7c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ee60
cmp edi, 0xa3316f9
je 0x1016eea1
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
inc edx
mov esi, dword [ebp + 0xc]
add ecx, 0x3c
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016ee10
mov eax, esi
mov dword [0x10375564], eax
jmp 0x1016eeb3
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp + 0xc]
mov dword [0x10375564], eax
jmp 0x1016eeb3
mov eax, dword [0x10375564]
mov esi, dword [ebp + 8]
add esi, eax
mov ecx, 0x60
mov eax, dword [ebp - 0x10]
lea edi, [eax + 0xac]
rep movsb byte es:[edi], byte [esi]
mov byte [eax], 1
mov eax, dword [0x103af244]
inc eax
and eax, 0x80000001
jns 0x1016eedd
dec eax
or eax, 0xfffffffe
inc eax
mov dword [0x103af244], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18