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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [ebp - 0x10], ecx
mov edi, dword [ebp + 0xc]
movzx ebx, byte [edi + 0xb]
test bl, bl
jns 0x436a7c
mov ebx, dword [edi + 4]
mov edi, dword [edi]
mov eax, ebx
mov ecx, edi
mov edx, ebx
mov dword [ebp - 0x1c], ebx
cmp ebx, 4
jb 0x436ab7
mov eax, dword [ebp - 0x1c]
mov edx, eax
mov ecx, edi
imul esi, dword [ecx], 0x5bd1e995
mov ebx, esi
shr ebx, 0x18
xor ebx, esi
imul esi, ebx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, esi
add ecx, 4
add edx, 0xfffffffc
cmp edx, 3
ja 0x436a91
cmp edx, 1
je 0x436ad8
cmp edx, 2
je 0x436acf
cmp edx, 3
jne 0x436ae3
movzx edx, byte [ecx + 2]
shl edx, 0x10
xor eax, edx
movzx edx, byte [ecx + 1]
shl edx, 8
xor eax, edx
movzx ecx, byte [ecx]
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov esi, eax
shr esi, 0xf
xor esi, eax
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 4]
test ebx, ebx
mov dword [ebp - 0x14], esi
je 0x436b47
mov ecx, ebx
shr ecx, 1
and ecx, 0x55555555
mov eax, ebx
sub eax, ecx
mov ecx, 0x33333333
mov edx, eax
and edx, ecx
shr eax, 2
and eax, ecx
add eax, edx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul eax, ecx, 0x1010101
shr eax, 0x18
mov dword [ebp - 0x28], eax
cmp eax, 1
ja 0x436b52
lea ecx, [ebx - 1]
and ecx, esi
jmp 0x436b60
xor eax, eax
dec eax
mov dword [ebp - 0x18], eax
jmp 0x436c12
mov ecx, esi
cmp esi, ebx
jb 0x436b60
mov eax, esi
xor edx, edx
div ebx
mov ecx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
test eax, eax
mov dword [ebp - 0x18], ecx
je 0x436c12
mov esi, dword [eax]
test esi, esi
je 0x436c12
lea eax, [ebx - 1]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ebx
mov eax, dword [esi + 4]
cmp eax, dword [ebp - 0x14]
je 0x436ba7
cmp dword [ebp - 0x28], 1
ja 0x436b99
and eax, dword [ebp - 0x20]
jmp 0x436ba3
cmp eax, ebx
jb 0x436ba3
xor edx, edx
div ebx
mov eax, edx
cmp eax, ecx
jne 0x436c12
movzx ecx, byte [esi + 0x13]
mov eax, ecx
test cl, cl
jns 0x436bb4
mov eax, dword [esi + 0xc]
cmp eax, dword [ebp - 0x1c]
jne 0x436c02
lea eax, [esi + 8]
mov edx, dword [eax]
test cl, cl
cmovs eax, edx
js 0x436be4
xor ebx, ebx
test ecx, ecx
je 0x436d61
dec ecx
cmp dl, byte [edi + ebx]
jne 0x436c02
cmp ecx, ebx
je 0x436d12
mov dl, byte [esi + ebx + 9]
inc ebx
jmp 0x436bd0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x436d12
push ecx
push edi
push eax
call fcn.0048d57d
add esp, 0xc
test eax, eax
je 0x436d12
mov esi, dword [esi]
test esi, esi
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
jne 0x436b86
mov edi, dword [ebp + 0x14]
push 0x18
call fcn.0048b346
add esp, 4
mov esi, eax
mov ecx, eax
add ecx, 8
mov eax, dword [edi]
cmp byte [eax + 0xb], 0
js 0x436d73
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov edi, dword [ebp - 0x10]
xor eax, eax
mov dword [esi + 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [esi + 4], ecx
mov dword [esi], eax
mov eax, dword [edi + 0xc]
inc eax
movq xmm1, qword [0x504c70]
movd xmm0, eax
por xmm0, xmm1
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movd xmm2, ebx
por xmm2, xmm1
subsd xmm2, xmm1
cvtsd2ss xmm2, xmm2
movss xmm1, dword [edi + 0x10]
mulss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x436c96
test ebx, ebx
je 0x436c96
mov edx, dword [ebp - 0x18]
jmp 0x436d1a
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
call fcn.004b4880
add esp, 8
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
cvttss2si ecx, xmm0
mov edx, ecx
sar edx, 0x1f
subss xmm0, dword [0x5099d0]
cvttss2si eax, xmm0
and eax, edx
or eax, ecx
lea ecx, [ebx + ebx]
cmp ebx, 3
jb 0x436ce6
lea edi, [ebx - 1]
xor edx, edx
test ebx, edi
mov edi, dword [ebp - 0x10]
setne dl
jmp 0x436ce9
xor edx, edx
inc edx
or edx, ecx
cmp edx, eax
cmovb edx, eax
mov ecx, edi
push edx
call fcn.00436d90
mov ebx, dword [edi + 4]
lea edx, [ebx - 1]
test ebx, edx
jne 0x436d07
and edx, dword [ebp - 0x14]
jmp 0x436d1a
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jae 0x436d16
mov edx, eax
jmp 0x436d1a
xor ebx, ebx
jmp 0x436d61
xor edx, edx
div ebx
mov eax, dword [edi]
mov ecx, dword [eax + edx*4]
test ecx, ecx
je 0x436d2b
mov eax, dword [ecx]
mov dword [esi], eax
mov dword [ecx], esi
jmp 0x436d5c
mov ecx, dword [edi + 8]
mov dword [esi], ecx
lea ecx, [edi + 8]
mov dword [edi + 8], esi
mov dword [eax + edx*4], ecx
mov eax, dword [esi]
test eax, eax
je 0x436d5c
mov eax, dword [eax + 4]
lea ecx, [ebx - 1]
test ebx, ecx
jne 0x436d4d
and eax, ecx
jmp 0x436d57
cmp eax, ebx
jb 0x436d57
xor edx, edx
div ebx
mov eax, edx
mov ecx, dword [edi]
mov dword [ecx + eax*4], esi
inc dword [edi + 0xc]
mov bl, 1
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov byte [eax + 4], bl
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
push dword [eax + 4]
push dword [eax]
call fcn.0046c220
jmp 0x436c40