Function at 0x447eb0
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 0x448106
mov eax, dword [edi + 4]
mov dword [esp + 0x65c], eax
test ebx, ebx
je 0x447ef5
mov eax, ebx
call fcn.0040870c
mov eax, ebx
call fcn.0043cd58
mov edx, dword [0x80abd4]
test esi, esi
je 0x448200
mov eax, esi
call fcn.00463f94
mov dword [esp + 0x658], eax
mov ebx, eax
test ebx, ebx
je 0x4481f2
movsx ebx, byte [esi]
test ebx, ebx
je 0x4481eb
xor ebx, ebx
mov eax, esi
movsx ecx, byte [eax]
cmp ecx, 0x2f
je 0x447f44
movzx ecx, cl
movzx ecx, byte [ecx + 0x5b70a0]
inc ecx
movsx ecx, cl
add ebx, ecx
jmp 0x447f49
lea esi, [eax + 1]
xor ebx, ebx
lea eax, [ebx + esi]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x447f2d
push 0x38
call fcn.00403564
pop ecx
mov dword [esp + 0x654], eax
test eax, eax
je 0x4481ce
lea eax, [ebx + 1]
push eax
call fcn.0046bddc
pop ecx
mov edx, eax
mov eax, dword [esp + 0x654]
mov dword [eax + 0x14], edx
test edx, edx
je 0x4481b1
push ebx
push esi
push edx
call dword [0x5d498c]
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 0x447fe0
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 0x447fb3
mov edi, dword [esp + 0x650]
cmp eax, 3
je 0x447ff1
cmp eax, 2
je 0x447ffa
cmp eax, 1
je 0x448003
jmp 0x44800e
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.0046402c
mov eax, dword [esp + 0x654]
push eax
call fcn.00468894
mov esi, eax
lea eax, [esp + 0x14]
lea ebx, [edi + 8]
mov edx, dword [esp + 0x664]
push edx
push ebx
push eax
call dword [0x5d498c]
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 0x448188
test ecx, ecx
je 0x448173
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.0046c278
add esp, 8
test eax, eax
je 0x448127
mov dword [esi + 0x90], eax
test eax, eax
je 0x448115
mov edx, dword [esp + 0x660]
lea ebx, [edi + edx + 8]
mov ecx, dword [esp + 0x65c]
push ecx
push ebx
push eax
call dword [0x5d498c]
xor eax, eax
add esp, 0x670
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push 1
push 0x1a64e
call fcn.00468e88
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 0x81163c
push 0x810270
mov dword [esp + 0x668], eax
call fcn.00417454
mov eax, dword [esp + 0x668]
push 0
push 1
push 0x1965e
mov dword [esp + 0x674], eax
call fcn.00468e58
mov eax, dword [esp + 0x674]
add esp, 0x20
jmp 0x4480d2
mov eax, edx
imul eax, ebx
lea edx, [edx + eax + 4]
push edx
call fcn.0046bddc
pop ecx
jmp 0x4480ce
push ebx
mov edx, eax
push edx
push 0x811614
push 0x810270
call fcn.0040c598
push 1
push 0x186aa
call fcn.00468eb4
add esp, 0x18
xor eax, eax
jmp 0x4480d2
push 1
push 0x186aa
call fcn.00468eb4
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x448059
push 1
push 0x186aa
call fcn.00468eb4
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x448059
xor ebx, ebx
jmp 0x447f53
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x448059
push 1
push 0xdbbb4
call fcn.00468eb4
add esp, 8
xor eax, eax
mov dword [esp + 0x654], eax
jmp 0x448059