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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
add edi, 0x14
mov esi, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
mov dword [ebp - 4], ebx
jb 0x1004a165
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x1004a181
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x1004a170
and edx, dword [0x100fe618]
mov ecx, dword [0x100fe60c]
mov ebx, dword [0x100fe604]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
lea eax, [eax + 1]
mov edx, dword [ecx + eax*4 - 4]
lea eax, [ecx + eax*4]
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], eax
nop dword [eax]
cmp edx, ebx
jne 0x1004a1b8
mov eax, ebx
jmp 0x1004a1bc
mov eax, dword [eax]
mov eax, dword [eax]
cmp esi, eax
je 0x1004a23c
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x1004a1ca
mov edx, dword [edi]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
mov dword [ebp - 0x10], ebx
cmp ebx, 0x10
mov ebx, dword [0x100fe604]
jb 0x1004a1e1
mov ecx, dword [esi + 8]
push dword [ebp - 4]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0x14], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004a203
mov esi, dword [esi]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
jmp 0x1004a1b0
cmp dword [ebp - 0x10], 0x10
lea eax, [esi + 8]
jb 0x1004a20e
mov eax, dword [eax]
cmp dword [edi + 0x14], 0x10
jb 0x1004a216
mov edi, dword [edi]
push dword [ebp - 0x14]
mov edx, dword [ebp - 4]
mov ecx, edi
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, ebx
cmp esi, ebx
je 0x1004a23c
mov ecx, dword [ebp + 8]
mov eax, 0x4c3f50
push 4
call eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
add edi, 0x14
mov esi, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
mov dword [ebp - 4], ebx
jb 0x1004a258
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x1004a274
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x1004a263
and edx, dword [0x100fe7d8]
mov ecx, dword [0x100fe7cc]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 4
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
mov eax, dword [0x100fe7c4]
cmp edx, eax
je 0x1004a2a2
mov eax, dword [ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x1004a320
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x1004a2b0
mov edx, dword [edi]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmp ebx, 0x10
jb 0x1004a2be
mov ecx, dword [esi + 8]
push dword [ebp - 4]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0xc], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004a2e0
mov esi, dword [esi]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x1004a295
lea eax, [esi + 8]
cmp ebx, 0x10
jb 0x1004a2ea
mov eax, dword [eax]
cmp dword [edi + 0x14], 0x10
jb 0x1004a2f2
mov edi, dword [edi]
push dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov ecx, edi
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, dword [0x100fe7c4]
cmp esi, dword [0x100fe7c4]
je 0x1004a320
mov ecx, dword [ebp + 8]
mov eax, 0x4c3f50
push 0x20
call eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
add edi, 0x14
mov esi, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
mov dword [ebp - 4], ebx
jb 0x1004a33c
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x1004a358
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x1004a347
and edx, dword [0x100fe398]
mov ecx, dword [0x100fe38c]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 4
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
mov eax, dword [0x100fe384]
cmp edx, eax
je 0x1004a386
mov eax, dword [ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x1004a40f
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x1004a398
mov edx, dword [edi]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmp ebx, 0x10
jb 0x1004a3a6
mov ecx, dword [esi + 8]
push dword [ebp - 4]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0xc], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004a3c8
mov esi, dword [esi]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x1004a379
lea eax, [esi + 8]
cmp ebx, 0x10
jb 0x1004a3d2
mov eax, dword [eax]
cmp dword [edi + 0x14], 0x10
jb 0x1004a3da
mov edi, dword [edi]
push dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov ecx, edi
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, dword [0x100fe384]
cmp esi, dword [0x100fe384]
je 0x1004a40f
mov ecx, dword [ebp + 8]
mov esi, 0x4c3f50
push 3
call esi
mov ecx, dword [ebp + 8]
push 1
call esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
add edi, 0x14
mov esi, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
mov dword [ebp - 4], ebx
jb 0x1004a42b
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x1004a447
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x1004a436
and edx, dword [0x100fe238]
mov ecx, dword [0x100fe22c]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 4
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
mov eax, dword [0x100fe224]
cmp edx, eax
je 0x1004a475
mov eax, dword [ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x1004a4fe
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x1004a487
mov edx, dword [edi]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmp ebx, 0x10
jb 0x1004a495
mov ecx, dword [esi + 8]
push dword [ebp - 4]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0xc], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004a4b7
mov esi, dword [esi]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x1004a468
lea eax, [esi + 8]
cmp ebx, 0x10
jb 0x1004a4c1
mov eax, dword [eax]
cmp dword [edi + 0x14], 0x10
jb 0x1004a4c9
mov edi, dword [edi]
push dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov ecx, edi
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, dword [0x100fe224]
cmp esi, dword [0x100fe224]
je 0x1004a4fe
mov ecx, dword [ebp + 8]
mov esi, 0x4c3f50
push 0xf
call esi
mov ecx, dword [ebp + 8]
push 1
call esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
add edi, 0x14
mov esi, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
mov dword [ebp - 4], ebx
jb 0x1004a51a
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x1004a536
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x1004a525
and edx, dword [0x100fe4b8]
mov ecx, dword [0x100fe4ac]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 4
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
mov eax, dword [0x100fe4a4]
cmp edx, eax
je 0x1004a564
mov eax, dword [ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x1004a5e2
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x1004a572
mov edx, dword [edi]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmp ebx, 0x10
jb 0x1004a580
mov ecx, dword [esi + 8]
push dword [ebp - 4]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0xc], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004a5a2
mov esi, dword [esi]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x1004a557
lea eax, [esi + 8]
cmp ebx, 0x10
jb 0x1004a5ac
mov eax, dword [eax]
cmp dword [edi + 0x14], 0x10
jb 0x1004a5b4
mov edi, dword [edi]
push dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov ecx, edi
push eax
call fcn.1000ba70
add esp, 8
test al, al
cmove esi, dword [0x100fe4a4]
cmp esi, dword [0x100fe4a4]
je 0x1004a5e2
mov ecx, dword [ebp + 8]
mov eax, 0x4c3f50
push 0x16
call eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov edi, dword [eax + 0x18]
add edi, 0x14
mov esi, edi
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
mov dword [ebp - 4], ebx
jb 0x1004a5fe
mov esi, dword [edi]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x1004a621
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x1004a610
and edx, dword [0x100fe518]
mov ecx, dword [0x100fe50c]
lea eax, [edx + edx]
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 4
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
mov eax, dword [0x100fe504]
cmp edx, eax
je 0x1004a64f
mov eax, dword [ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x1004a6cf
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x1004a65d
mov edx, dword [edi]
mov ebx, dword [esi + 0x1c]
lea ecx, [esi + 8]
cmp ebx, 0x10
jb 0x1004a66b
mov ecx, dword [esi + 8]
push dword [ebp - 4]
mov eax, dword [esi + 0x18]
push edx
mov edx, eax
mov dword [ebp - 0xc], eax
call fcn.1000ba70
add esp, 8
test al, al
jne 0x1004a68d
mov esi, dword [esi]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x1004a642
lea eax, [esi + 8]
cmp ebx, 0x10
jb 0x1004a697
mov eax, dword [eax]
cmp dword [edi + 0x14], 0x10
jb 0x1004a69f
mov edi, dword [edi]
push dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov ecx, edi
push eax
call fcn.1000ba70
add esp, 8
mov ebx, 0x4c3f50
test al, al
cmove esi, dword [0x100fe504]
cmp esi, dword [0x100fe504]
je 0x1004a6d4
mov ecx, dword [ebp + 8]
push 0x15
call ebx
jmp 0x1004a6d4
mov ebx, 0x4c3f50
mov eax, dword [ebp + 8]
mov ecx, 0x100fe180
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
add eax, 0x14
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10009830
mov eax, dword [eax]
cmp eax, dword [0x100fe184]
je 0x1004a700
mov ecx, dword [ebp + 8]
push 0x14
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4