Function at 0x4472f8
Capabilities:
Encode data using xor
Hash data using murmur2

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x664
mov edi, ecx
mov esi, edx
mov ebx, eax
mov eax, dword [edi]
mov dword [esp + 0x660], eax
cmp eax, 0x640
jne 0x44754e
mov eax, dword [edi + 4]
mov dword [esp + 0x65c], eax
test ebx, ebx
je 0x44733d
mov eax, ebx
call fcn.0040870c
mov eax, ebx
call fcn.0043caa4
mov edx, dword [0x8085d4]
test esi, esi
je 0x447648
mov eax, esi
call fcn.00461c8c
mov dword [esp + 0x658], eax
mov ebx, eax
test ebx, ebx
je 0x44763a
movsx ebx, byte [esi]
test ebx, ebx
je 0x447633
xor ebx, ebx
mov eax, esi
movsx ecx, byte [eax]
cmp ecx, 0x2f
je 0x44738c
movzx ecx, cl
movzx ecx, byte [ecx + 0x5b50a0]
inc ecx
movsx ecx, cl
add ebx, ecx
jmp 0x447391
lea esi, [eax + 1]
xor ebx, ebx
lea eax, [ebx + esi]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x447375
push 0x38
call fcn.00403564
pop ecx
mov dword [esp + 0x654], eax
test eax, eax
je 0x447616
lea eax, [ebx + 1]
push eax
call fcn.004696fc
pop ecx
mov edx, eax
mov eax, dword [esp + 0x654]
mov dword [eax + 0x14], edx
test edx, edx
je 0x4475f9
push ebx
push esi
push edx
call dword [0x5d248c]
add esp, 0xc
mov eax, dword [esp + 0x654]
mov eax, dword [eax + 0x14]
xor ecx, ecx
mov byte [eax + ebx], cl
mov eax, ebx
xor ecx, ebx
cmp ebx, 4
jl 0x447428
mov dword [esp + 0x650], edi
imul edx, dword [esi], 0x5bd1e995
mov edi, edx
shr edi, 0x18
xor edx, edi
imul edi, edx, 0x5bd1e995
imul ecx, ecx, 0x5bd1e995
xor ecx, edi
add esi, 4
add eax, 0xfffffffc
cmp eax, 4
jge 0x4473fb
mov edi, dword [esp + 0x650]
cmp eax, 3
je 0x447439
cmp eax, 2
je 0x447442
cmp eax, 1
je 0x44744b
jmp 0x447456
movzx eax, byte [esi + 2]
shl eax, 0x10
xor ecx, eax
movzx eax, byte [esi + 1]
shl eax, 8
xor ecx, eax
movzx eax, byte [esi]
xor ecx, eax
imul ecx, ecx, 0x5bd1e995
mov esi, ecx
shr esi, 0xd
xor ecx, esi
imul esi, ecx, 0x5bd1e995
mov eax, esi
shr eax, 0xf
xor esi, eax
and esi, 0x7fffffff
xor ecx, ecx
mov edx, dword [esp + 0x654]
mov dword [edx + 0x1c], esi
mov dword [edx + 0x18], ebx
mov byte [edx + 0x30], cl
mov ebx, 1
mov dword [edx + 0x28], ebx
mov dword [edx + 0x2c], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x658]
call fcn.00461d24
mov eax, dword [esp + 0x654]
push eax
call fcn.0046621c
mov esi, eax
lea eax, [esp + 0x14]
lea ebx, [edi + 8]
mov edx, dword [esp + 0x664]
push edx
push ebx
push eax
call dword [0x5d248c]
add esp, 0x10
mov eax, dword [esp + 0x88]
mov dword [esp + 0x658], eax
mov dword [esi + 0x78], eax
mov ebx, dword [esp + 0x8c]
mov dword [esi + 0x7c], ebx
mov ecx, dword [esi + 0x90]
lea edx, [eax + eax]
add edx, edx
cmp eax, 0x2000
jg 0x4475d0
test ecx, ecx
je 0x4475bb
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.00469b98
add esp, 8
test eax, eax
je 0x44756f
mov dword [esi + 0x90], eax
test eax, eax
je 0x44755d
mov edx, dword [esp + 0x660]
lea ebx, [edi + edx + 8]
mov ecx, dword [esp + 0x65c]
push ecx
push ebx
push eax
call dword [0x5d248c]
xor eax, eax
add esp, 0x670
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push 1
push 0x1a64e
call fcn.00466810
add esp, 8
mov eax, 0xffffffff
add esp, 0x664
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push ebx
mov edx, dword [esp + 0x65c]
push edx
push 0
push 0x80f5a4
push 0x80e270
mov dword [esp + 0x668], eax
call fcn.0049acf0
mov eax, dword [esp + 0x668]
push 0
push 1
push 0x1965e
mov dword [esp + 0x674], eax
call fcn.004667e0
mov eax, dword [esp + 0x674]
add esp, 0x20
jmp 0x44751a
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
call fcn.004696fc
pop ecx
jmp 0x447516
push ebx
mov edx, eax
push edx
push 0x80f57c
push 0x80e270
call fcn.0040c598
push 1
push 0x186aa
call fcn.0046683c
add esp, 0x18
xor eax, eax
jmp 0x44751a
push 1
push 0x186aa
call fcn.0046683c
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4474a1
push 1
push 0x186aa
call fcn.0046683c
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4474a1
xor ebx, ebx
jmp 0x44739b
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4474a1
push 1
push 0xdbbb4
call fcn.0046683c
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x4474a1