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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1022e783
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x48
push esi
push edi
mov eax, dword [0x102d2084]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x24], ecx
mov edi, dword [ebx + 8]
mov eax, dword [edi + 0x187c]
cmp eax, dword [edi + 0x1880]
je 0x1015200c
cmp byte [edi + 1], 0
je 0x1015200c
cmp dword [edi + 0x1850], 0
je 0x1015200c
mov eax, dword [0x10370f48]
mov esi, dword [edi + 8]
mov dword [ebp - 0x1c], esi
test al, 1
jne 0x1015081d
or eax, 1
mov dword [0x10370f48], eax
mov dword [ebp - 4], 0
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x20], eax
cmp eax, dword [0x1036cbb4]
je 0x1015074a
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x1015073c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10150713
xor edx, edx
test ecx, ecx
je 0x1015073c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10150720
cmp esi, 0x1eee87cc
je 0x10150763
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x20], eax
cmp eax, dword [0x1036cbb4]
jne 0x10150700
xor eax, eax
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebx + 8]
mov dword [0x10370f8c], eax
jmp 0x10150822
mov eax, dword [ebp - 0x14]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], edi
cmp dword [eax + 4], edi
jle 0x10150808
xor ecx, ecx
mov dword [ebp - 0x28], 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 0x101507b4
cmp dword [ecx + 4], 0
jle 0x101507b4
push 0
mov edx, 0x559d81af
call fcn.10138e60
add esp, 4
test eax, eax
je 0x101507b1
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x14]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
nop dword [eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x101507c0
xor edx, edx
test ecx, ecx
je 0x101507ec
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101507d0
cmp esi, 0x559d81af
je 0x1015080f
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], ecx
cmp edx, dword [eax + 4]
jl 0x10150780
mov eax, edi
jmp 0x1015074c
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015074c
mov eax, dword [0x10370f8c]
movq xmm0, qword [eax + esi]
mov ecx, esi
movq qword [edi + 0x10], xmm0
mov eax, dword [eax + esi + 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 [0x1036f668]
test al, 1
jne 0x1015099d
or eax, 1
mov dword [0x1036f668], eax
mov dword [ebp - 4], 1
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
je 0x101508ca
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x101508bc
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10150890
xor edx, edx
test ecx, ecx
je 0x101508bc
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101508a0
cmp esi, 0x72e242a1
je 0x101508e3
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
jne 0x10150877
xor eax, eax
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebx + 8]
mov dword [0x1036f700], eax
jmp 0x101509a2
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x28], edi
cmp dword [eax + 4], edi
jle 0x10150988
xor ecx, ecx
mov dword [ebp - 0x20], 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 0x10150934
cmp dword [ecx + 4], 0
jle 0x10150934
push 0
mov edx, 0xf3c2c786
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10150931
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x18]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150940
xor edx, edx
test ecx, ecx
je 0x1015096c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150950
cmp edi, 0xf3c2c786
je 0x1015098f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
inc edx
mov edi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x10150900
mov eax, edi
jmp 0x101508cc
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x14]
jmp 0x101508cc
mov eax, dword [0x1036f700]
movq xmm0, qword [eax + esi]
movq qword [edi + 0x28], xmm0
mov eax, dword [eax + esi + 8]
mov dword [edi + 0x30], eax
mov eax, dword [0x1036f6a0]
test al, 1
jne 0x10150afd
or eax, 1
mov dword [0x1036f6a0], eax
mov dword [ebp - 4], 2
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
je 0x10150a2a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x10150a1c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101509f3
xor edx, edx
test ecx, ecx
je 0x10150a1c
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10150a00
cmp esi, 0x1eee87cc
je 0x10150a43
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
jne 0x101509e0
xor eax, eax
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebx + 8]
mov dword [0x1036f6b8], eax
jmp 0x10150b02
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x28], edi
cmp dword [eax + 4], edi
jle 0x10150ae8
xor ecx, ecx
mov dword [ebp - 0x20], 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 0x10150a94
cmp dword [ecx + 4], 0
jle 0x10150a94
push 0
mov edx, 0xe57f80c
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10150a91
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x18]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150aa0
xor edx, edx
test ecx, ecx
je 0x10150acc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150ab0
cmp edi, 0xe57f80c
je 0x10150aef
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
inc edx
mov edi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x10150a60
mov eax, edi
jmp 0x10150a2c
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x14]
jmp 0x10150a2c
mov eax, dword [0x1036f6b8]
movq xmm0, qword [eax + esi]
movq qword [edi + 0x34], xmm0
mov eax, dword [eax + esi + 8]
mov dword [edi + 0x3c], eax
mov eax, dword [0x10370f14]
test al, 1
jne 0x10150c5d
or eax, 1
mov dword [0x10370f14], eax
mov dword [ebp - 4], 3
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
je 0x10150b8a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x10150b7c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150b53
xor edx, edx
test ecx, ecx
je 0x10150b7c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150b60
cmp edi, 0x1eee87cc
je 0x10150ba3
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
jne 0x10150b40
xor eax, eax
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebx + 8]
mov dword [0x1036f6d8], eax
jmp 0x10150c62
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x28], edi
cmp dword [eax + 4], edi
jle 0x10150c48
xor ecx, ecx
mov dword [ebp - 0x20], 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 0x10150bf4
cmp dword [ecx + 4], 0
jle 0x10150bf4
push 0
mov edx, 0x7d388d3e
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10150bf1
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x18]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150c00
xor edx, edx
test ecx, ecx
je 0x10150c2c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150c10
cmp edi, 0x7d388d3e
je 0x10150c4f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
inc edx
mov edi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x10150bc0
mov eax, edi
jmp 0x10150b8c
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x14]
jmp 0x10150b8c
mov eax, dword [0x1036f6d8]
movq xmm0, qword [eax + esi]
movq qword [edi + 0x40], xmm0
mov eax, dword [eax + esi + 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, 0xd3a0
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebx + 8]
mov ecx, 0xa380
mov edi, dword [esi + 0x1850]
mov dword [ebp - 0x2c], edi
cmp byte [edi + 0xc], 0
cmove eax, ecx
mov ecx, dword [esi + 8]
mov esi, dword [0x107ef998]
add eax, edi
mov dword [ebp - 0x14], ecx
add esi, 0xfaacd160
add ecx, 8
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x48], eax
xor esi, 0x7af747a1
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x394
add eax, esi
je 0x101513c7
cmp byte [edi + 0xc], 0
mov eax, 0xd380
mov ecx, 0x84
cmove eax, ecx
movss xmm0, dword [eax + edi + 8]
movss xmm2, dword [eax + edi]
movss xmm1, dword [eax + edi + 4]
movss dword [ebp - 0x50], xmm0
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x38], eax
mov eax, dword [0x10370f48]
unpcklps xmm2, xmm1
movq qword [ebp - 0x58], xmm2
test al, 1
jne 0x10150e75
or eax, 1
mov dword [0x10370f48], eax
mov dword [ebp - 4], 4
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
je 0x10150d8a
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10150d7c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150d53
xor edx, edx
test ecx, ecx
je 0x10150d7c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150d60
cmp edi, 0x1eee87cc
je 0x10150da0
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
jne 0x10150d40
mov edi, dword [ebp - 0x2c]
xor eax, eax
mov dword [0x10370f8c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10150e7a
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x28], edi
cmp dword [eax + 4], edi
jle 0x10150e48
xor ecx, ecx
mov dword [ebp - 0x20], 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 0x10150df4
cmp dword [ecx + 4], 0
jle 0x10150df4
push 0
mov edx, 0x559d81af
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10150df1
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150e00
xor edx, edx
test ecx, ecx
je 0x10150e2c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150e10
cmp edi, 0x559d81af
je 0x10150e5b
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x10150dc0
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x2c]
mov dword [0x10370f8c], eax
jmp 0x10150e7a
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x2c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
mov dword [0x10370f8c], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10150e7a
mov eax, dword [0x10370f8c]
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x38]
movq qword [esi + eax], xmm2
mov dword [esi + eax + 8], ecx
lea ecx, [ebp - 0x58]
mov eax, dword [0x103bb7bc]
push ecx
mov ecx, esi
call eax
mov eax, dword [edi + 0xbc]
movq xmm0, qword [edi + 0xb4]
mov dword [ebp - 0x38], eax
mov eax, dword [0x10370f14]
test al, 1
jne 0x10150fed
or eax, 1
mov dword [0x10370f14], eax
mov dword [ebp - 4], 5
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
je 0x10150f1d
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10150f0f
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150ee6
xor edx, edx
test ecx, ecx
je 0x10150f0f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150ef3
cmp edi, 0x1eee87cc
je 0x10150f36
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1036cbb4]
jne 0x10150ed3
xor eax, eax
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x14]
mov dword [0x1036f6d8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10150ff2
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x28], edi
cmp dword [eax + 4], edi
jle 0x10150fd8
xor ecx, ecx
mov dword [ebp - 0x20], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x3c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10150f84
cmp dword [ecx + 4], 0
jle 0x10150f84
push 0
mov edx, 0x7d388d3e
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10150f81
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10150f90
xor edx, edx
test ecx, ecx
je 0x10150fbc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10150fa0
cmp edi, 0x7d388d3e
je 0x10150fdf
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x10150f50
mov eax, edi
jmp 0x10150f1f
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x10150f1f
mov eax, dword [0x1036f6d8]
mov ecx, dword [ebp - 0x38]
movq qword [esi + eax], xmm0
mov dword [esi + eax + 8], ecx
mov eax, dword [edi + 0xb0]
movq xmm0, qword [edi + 0xa8]
mov dword [ebp - 0x38], eax
mov eax, dword [0x1036f6a0]
test al, 1
jne 0x10151175
or eax, 1
mov dword [0x1036f6a0], eax
mov dword [ebp - 4], 6
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x2c], eax
cmp eax, dword [0x1036cbb4]
je 0x1015108a
nop dword [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x1015107c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151053
xor edx, edx
test ecx, ecx
je 0x1015107c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10151060
cmp edi, 0x1eee87cc
je 0x101510a0
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x2c], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151040
mov esi, dword [ebp - 0x14]
xor eax, eax
mov dword [0x1036f6b8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015117a
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x2c], edi
cmp dword [eax + 4], edi
jle 0x10151148
xor ecx, ecx
mov dword [ebp - 0x28], 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 0x101510f4
cmp dword [ecx + 4], 0
jle 0x101510f4
push 0
mov edx, 0xe57f80c
call fcn.10138e60
add esp, 4
test eax, eax
je 0x101510f1
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151100
xor edx, edx
test ecx, ecx
je 0x1015112c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10151110
cmp edi, 0xe57f80c
je 0x1015115b
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
cmp edx, dword [eax + 4]
jl 0x101510c0
mov esi, dword [ebp - 0x14]
mov eax, edi
mov dword [0x1036f6b8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015117a
mov eax, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
mov dword [0x1036f6b8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1015117a
mov eax, dword [0x1036f6b8]
mov edx, dword [0x1036f6f4]
mov ecx, dword [ebp - 0x38]
movq qword [esi + eax], xmm0
mov dword [esi + eax + 8], ecx
test dl, 1
jne 0x101512cb
or edx, 1
mov dword [0x1036f6f4], edx
mov dword [ebp - 4], 7
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x2c], eax
cmp eax, dword [0x1036cbb4]
je 0x101511ff
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x101511f1
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x101511c8
xor edx, edx
test ecx, ecx
je 0x101511f1
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x101511d5
cmp edi, 0x54aff69
je 0x1015121f
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x2c], eax
cmp eax, dword [0x1036cbb4]
jne 0x101511b5
xor ecx, ecx
mov esi, dword [ebp - 0x14]
add ecx, 0x1c
mov dword [ebp - 4], 0xffffffff
mov edx, dword [0x1036f6f4]
mov dword [0x1036f66c], ecx
jmp 0x101512d1
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x2c], edi
cmp dword [eax + 4], edi
jle 0x101512b6
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x3c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1015126c
cmp dword [ecx + 4], 0
jle 0x1015126c
push 0
mov edx, 0xddac019e
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151269
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151275
xor edx, edx
test ecx, ecx
je 0x1015129e
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10151282
cmp edi, 0xddac019e
je 0x101512bd
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
cmp edx, dword [eax + 4]
jl 0x10151238
mov ecx, edi
jmp 0x10151201
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x18]
jmp 0x10151201
mov ecx, dword [0x1036f66c]
lea eax, [esi + ecx]
test eax, eax
je 0x10151307
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [0x103bb6dc]
test eax, eax
je 0x101512f2
add eax, 0xa
mov eax, dword [eax]
mov eax, dword [eax]
dec eax
mov dword [esi + 0x2690], eax
mov dword [esi + 0x2924], 0xff7fffff
test dl, 1
jne 0x10151393
or edx, 1
mov dword [0x1036f6f4], edx
mov dword [ebp - 4], 8
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x2c], eax
cmp eax, dword [0x1036cbb4]
je 0x1015137e
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10151370
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151343
xor edx, edx
test ecx, ecx
je 0x10151370
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151350
cmp esi, 0x54aff69
je 0x1015140b
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x2c], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151330
xor ecx, ecx
mov esi, dword [ebp - 0x14]
add ecx, 0x1c
mov dword [0x1036f66c], ecx
mov dword [ebp - 4], 0xffffffff
lea edx, [esi + ecx]
test edx, edx
je 0x101513c7
mov eax, dword [esi + 0x2920]
mov edi, dword [esi + 0x2914]
mov esi, dword [ebp - 0x30]
lea ecx, [eax + eax*2]
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x14]
mov edi, dword [edx]
mov esi, dword [ebp - 0x30]
mov eax, dword [ecx + 0x2920]
lea ecx, [eax + eax*2]
shl ecx, 4
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebx + 8]
xor ecx, ecx
mov eax, dword [esi + 0x187c]
mov edx, dword [esi + 0x1880]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x4c], edx
cmp eax, edx
je 0x1015180d
mov eax, dword [esi + 8]
inc ecx
cmp byte [0x1035881c], 0
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x28], eax
je 0x101514b9
mov eax, dword [edx + 0x6570c]
jmp 0x101514bf
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x2c], edi
cmp dword [eax + 4], edi
jle 0x101514a4
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x3c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151458
cmp dword [ecx + 4], 0
jle 0x10151458
push 0
mov edx, 0xddac019e
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151455
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151461
xor edx, edx
test ecx, ecx
je 0x1015148c
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10151470
cmp edi, 0xddac019e
je 0x101514ab
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
cmp edx, dword [eax + 4]
jl 0x10151424
mov ecx, edi
jmp 0x10151380
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x18]
jmp 0x10151380
mov eax, dword [edx + 0x65708]
mov ecx, dword [0x10370fac]
mov dword [ebp - 0x20], eax
test cl, 1
jne 0x1015160d
or ecx, 1
mov dword [0x10370fac], ecx
mov dword [ebp - 4], 9
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x14], eax
cmp eax, dword [0x1036cbb4]
je 0x1015153b
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x1015152d
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151504
xor edx, edx
test ecx, ecx
je 0x1015152d
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10151511
cmp edi, 0x72e242a1
je 0x10151554
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x14], eax
cmp eax, dword [0x1036cbb4]
jne 0x101514f1
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x10370fac]
mov dword [0x10370f6c], eax
jmp 0x10151612
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x101515f8
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x14], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x101515a4
cmp dword [ecx + 4], 0
jle 0x101515a4
push 0
mov edx, 0x84cdad2
call fcn.10138e60
add esp, 4
test eax, eax
je 0x101515a1
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x101515b0
xor edx, edx
test ecx, ecx
je 0x101515dc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x101515c0
cmp edi, 0x84cdad2
je 0x101515ff
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 0x10151570
mov eax, edi
jmp 0x1015153d
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015153d
mov eax, dword [0x10370f6c]
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
mov edx, dword [edx + eax]
mov dword [ebp - 0x40], edx
cmp esi, 0x63
jle 0x1015162d
add esi, 0xffffff9c
add esi, edx
jmp 0x101516cb
test cl, 1
jne 0x101516c2
or ecx, 1
mov dword [0x10370fac], ecx
mov dword [ebp - 4], 0xa
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x14], eax
cmp eax, dword [0x1036cbb4]
je 0x101516ae
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x101516a0
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151670
xor edx, edx
test ecx, ecx
je 0x101516a0
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10151680
cmp edi, 0x72e242a1
je 0x10151733
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 0x14], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151656
xor eax, eax
mov esi, dword [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x40]
mov dword [0x10370f6c], eax
mov ecx, dword [ebp - 0x28]
cmp esi, dword [ecx + eax]
cmovg esi, edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebx + 8]
add eax, 0x24
mov edx, dword [0x103bb304]
add ecx, 0x1850
mov dword [ebp - 0x30], esi
add edx, 0x1051c882
mov esi, dword [ebp - 0x38]
xor edx, 0x8dbfcd76
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], esi
lea eax, [esi + 3]
push eax
lea eax, [ebp - 0x48]
push eax
push ecx
lea eax, [ebp - 0x40]
push eax
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x30]
push eax
push ecx
mov ecx, edx
call fcn.10162e70
add esi, 0x24
mov dword [ebp - 0x38], esi
cmp esi, dword [ebp - 0x4c]
je 0x101517ed
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebx + 8]
jmp 0x101513e6
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], edi
cmp dword [eax + 4], edi
jle 0x101517d8
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x14], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151784
cmp dword [ecx + 4], 0
jle 0x10151784
push 0
mov edx, 0x84cdad2
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151781
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151790
xor edx, edx
test ecx, ecx
je 0x101517bc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x101517a0
cmp edi, 0x84cdad2
je 0x101517df
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 0x10151750
mov eax, edi
jmp 0x101516b0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x101516b0
cmp dword [ebp - 0x3c], 0
jle 0x1015180a
mov ecx, dword [0x103bb304]
add ecx, 0x1051c882
xor ecx, 0x8dbfcd76
call fcn.1000e740
mov esi, dword [ebx + 8]
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 8]
movq xmm0, qword [esi + 0x10]
mov dword [ebp - 0x48], eax
mov eax, dword [0x10370f48]
mov dword [ebp - 0x14], edi
test al, 1
jne 0x1015196d
or eax, 1
mov dword [0x10370f48], eax
mov dword [ebp - 4], 0xb
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
je 0x1015189a
nop word [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x1015188c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x10151863
xor edx, edx
test ecx, ecx
je 0x1015188c
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151870
cmp esi, 0x1eee87cc
je 0x101518b3
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151850
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebx + 8]
mov dword [0x10370f8c], eax
jmp 0x10151972
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10151958
xor ecx, ecx
mov dword [ebp - 0x38], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x4c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151904
cmp dword [ecx + 4], 0
jle 0x10151904
push 0
mov edx, 0x559d81af
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151901
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10151910
xor edx, edx
test ecx, ecx
je 0x1015193c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10151920
cmp edi, 0x559d81af
je 0x1015195f
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x101518d0
mov eax, edi
jmp 0x1015189c
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x1015189c
mov eax, dword [0x10370f8c]
mov ecx, dword [ebp - 0x48]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
lea eax, [esi + 0x1c]
mov edx, dword [0x103bb7bc]
mov ecx, edi
push eax
call edx
mov eax, dword [esi + 0x30]
movq xmm0, qword [esi + 0x28]
mov dword [ebp - 0x48], eax
mov eax, dword [0x1036f668]
test al, 1
jne 0x10151add
or eax, 1
mov dword [0x1036f668], eax
mov dword [ebp - 4], 0xc
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
je 0x10151a0d
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x101519ff
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x101519d6
xor edx, edx
test ecx, ecx
je 0x101519ff
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101519e3
cmp esi, 0x72e242a1
je 0x10151a26
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
jne 0x101519c3
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebx + 8]
mov dword [0x1036f700], eax
jmp 0x10151ae2
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10151ac8
xor ecx, ecx
mov dword [ebp - 0x38], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x4c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151a74
cmp dword [ecx + 4], 0
jle 0x10151a74
push 0
mov edx, 0xf3c2c786
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151a71
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 0x10151a80
xor edx, edx
test ecx, ecx
je 0x10151aac
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151a90
cmp esi, 0xf3c2c786
je 0x10151acf
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x10151a40
mov eax, edi
jmp 0x10151a0f
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x10151a0f
mov eax, dword [0x1036f700]
mov ecx, dword [ebp - 0x48]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov eax, dword [esi + 0x48]
movq xmm0, qword [esi + 0x40]
mov dword [ebp - 0x48], eax
mov eax, dword [0x10370f14]
test al, 1
jne 0x10151c3d
or eax, 1
mov dword [0x10370f14], eax
mov dword [ebp - 4], 0xd
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
je 0x10151b6f
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10151b61
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151b38
xor edx, edx
test ecx, ecx
je 0x10151b61
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151b45
cmp esi, 0x1eee87cc
je 0x10151b88
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151b25
xor eax, eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebx + 8]
mov dword [0x1036f6d8], eax
jmp 0x10151c42
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10151c28
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x4c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151bd5
cmp dword [ecx + 4], 0
jle 0x10151bd5
push 0
mov edx, 0x7d388d3e
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151bd2
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
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151be0
xor edx, edx
test ecx, ecx
je 0x10151c0c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151bf0
cmp esi, 0x7d388d3e
je 0x10151c2f
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x10151ba1
mov eax, edi
jmp 0x10151b71
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
jmp 0x10151b71
mov eax, dword [0x1036f6d8]
mov ecx, dword [ebp - 0x48]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
mov eax, dword [esi + 0x3c]
movq xmm0, qword [esi + 0x34]
mov dword [ebp - 0x48], eax
mov eax, dword [0x1036f6a0]
test al, 1
jne 0x10151db5
or eax, 1
mov dword [0x1036f6a0], eax
mov dword [ebp - 4], 0xe
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
je 0x10151ccf
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10151cc1
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151c98
xor edx, edx
test ecx, ecx
je 0x10151cc1
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151ca5
cmp esi, 0x1eee87cc
je 0x10151ce5
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151c85
mov edi, dword [ebp - 0x14]
xor eax, eax
mov dword [0x1036f6b8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10151dba
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10151d88
xor ecx, ecx
mov dword [ebp - 0x38], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x4c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151d34
cmp dword [ecx + 4], 0
jle 0x10151d34
push 0
mov edx, 0xe57f80c
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151d31
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 0x10151d40
xor edx, edx
test ecx, ecx
je 0x10151d6c
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151d50
cmp esi, 0xe57f80c
je 0x10151d9b
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jl 0x10151d00
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x14]
mov dword [0x1036f6b8], eax
jmp 0x10151dba
mov eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x18]
mov dword [0x1036f6b8], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10151dba
mov eax, dword [0x1036f6b8]
mov edx, dword [0x1036f6f4]
mov ecx, dword [ebp - 0x48]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], ecx
test dl, 1
jne 0x10151f0b
or edx, 1
mov dword [0x1036f6f4], edx
mov dword [ebp - 4], 0xf
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
je 0x10151e3f
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10151e31
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151e08
xor edx, edx
test ecx, ecx
je 0x10151e31
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151e15
cmp esi, 0x54aff69
je 0x10151e5f
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151df5
xor edi, edi
lea ecx, [edi + 0x1c]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [0x1036f6f4]
mov edi, dword [ebp - 0x14]
mov dword [0x1036f66c], ecx
jmp 0x10151f11
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10151e41
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x4c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10151ea8
cmp dword [ecx + 4], 0
jle 0x10151ea8
push 0
mov edx, 0xddac019e
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10151ea5
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
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151eb1
xor edx, edx
test ecx, ecx
je 0x10151edc
nop
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151ec0
cmp esi, 0xddac019e
je 0x10151efd
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jge 0x10151e41
jmp 0x10151e74
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x18]
jmp 0x10151e41
mov ecx, dword [0x1036f66c]
lea eax, [edi + ecx]
test eax, eax
je 0x10151f47
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov eax, dword [0x103bb6dc]
test eax, eax
je 0x10151f32
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 [ebx + 8]
add esi, 0x50
mov dword [ebp - 0x30], esi
test dl, 1
jne 0x10151fdb
or edx, 1
mov dword [0x1036f6f4], edx
mov dword [ebp - 4], 0x10
mov eax, dword [0x1036cbb0]
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
je 0x10151fca
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10151fbc
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10151f93
xor edx, edx
test ecx, ecx
je 0x10151fbc
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10151fa0
cmp esi, 0x54aff69
je 0x10152022
mov eax, dword [ebp - 0x3c]
add eax, 4
mov dword [ebp - 0x3c], eax
cmp eax, dword [0x1036cbb4]
jne 0x10151f80
xor edi, edi
mov esi, dword [ebp - 0x30]
lea ecx, [edi + 0x1c]
mov edi, dword [ebp - 0x14]
mov dword [0x1036f66c], ecx
lea edx, [edi + ecx]
test edx, edx
je 0x1015200c
mov eax, dword [edi + 0x2920]
mov edi, dword [edi + 0x2914]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x14]
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]
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 4
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x3c], edi
cmp dword [eax + 4], edi
jle 0x10151fcc
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x4c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1015206b
cmp dword [ecx + 4], 0
jle 0x1015206b
push 0
mov edx, 0xddac019e
call fcn.10138e60
add esp, 4
test eax, eax
je 0x10152068
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
inc ecx
cmp byte [ecx + edi], 0
jne 0x10152074
xor edx, edx
test ecx, ecx
je 0x1015209d
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10152081
cmp esi, 0xddac019e
je 0x101520be
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
inc edx
mov edi, dword [ebp - 0x18]
add ecx, 0x3c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
cmp edx, dword [eax + 4]
jge 0x10151fcc
jmp 0x10152037
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 0x2c]
add edi, dword [ebp - 0x18]
jmp 0x10151fcc