Function at 0x402640
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x158
xor esi, esi
test r8d, r8d
mov qword [rsp + 0x1a0], rcx
mov qword [rsp + 0x1a8], rdx
mov dword [rsp + 0x1b0], r8d
je 0x4028be
lea r11, [rsp + 0x50]
lea rax, [rsp + 0x148]
mov rbp, rcx
mov qword [rsp + 0x48], rax
mov rdi, r11
jmp 0x40269f
mov eax, dword [rsp + 0x1b0]
test eax, eax
je 0x4028b0
mov eax, dword [rbp + 0x28]
mov ebx, 0x40
mov rdx, qword [rsp + 0x1a8]
sub ebx, eax
cmp dword [rsp + 0x1b0], ebx
lea rcx, [rbp + rax + 0x2c]
cmovbe ebx, dword [rsp + 0x1b0]
mov r12d, ebx
mov r8, r12
call sub.msvcrt.dll_memcpy
lea eax, [rbx*8]
add qword [rbp], rax
mov eax, dword [rbp + 0x28]
add qword [rsp + 0x1a8], r12
sub dword [rsp + 0x1b0], ebx
add eax, ebx
cmp eax, 0x40
mov dword [rbp + 0x28], eax
jne 0x402690
lea rcx, [rbp + 0x2c]
xor eax, eax
nop dword [rax]
mov edx, dword [rcx + rax]
bswap edx
mov dword [rdi + rax], edx
add rax, 4
cmp rax, 0x40
jne 0x402700
mov r8, qword [rsp + 0x48]
lea r9, [rdi + 0x38]
nop dword [rax + rax]
mov edx, dword [r9]
mov ecx, dword [r9 - 0x14]
add r9, 4
add ecx, dword [r9 - 0x3c]
mov eax, dword [r9 - 0x38]
mov r11d, edx
mov r10d, edx
shr edx, 0xa
rol r11d, 0xd
rol r10d, 0xf
xor r10d, r11d
xor edx, r10d
mov r10d, eax
add edx, ecx
mov ecx, eax
rol r10d, 0xe
ror ecx, 7
shr eax, 3
xor ecx, r10d
xor eax, ecx
add eax, edx
mov dword [r9 + 4], eax
cmp r9, r8
jne 0x402720
mov ebx, dword [rbp + 0x14]
mov esi, dword [rbp + 0xc]
xor r10d, r10d
mov eax, dword [rbp + 8]
mov edx, dword [rbp + 0x24]
lea r14, [0x00625780]
mov r13d, ebx
mov dword [rsp + 0x34], ebx
mov ebx, dword [rbp + 0x18]
mov r11d, esi
mov dword [rsp + 0x2c], esi
mov esi, dword [rbp + 0x10]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x44], edx
mov r9d, eax
mov r8d, ebx
mov dword [rsp + 0x38], ebx
mov ebx, dword [rbp + 0x1c]
mov dword [rsp + 0x30], esi
mov r12d, ebx
mov dword [rsp + 0x3c], ebx
mov ebx, dword [rbp + 0x20]
mov dword [rsp + 0x40], ebx
jmp 0x4027d2
mov esi, r11d
mov ebx, r12d
mov r11d, r9d
mov r12d, r8d
mov r9d, eax
mov r8d, r15d
mov ecx, r8d
mov eax, r8d
mov r15d, dword [r14 + r10]
ror ecx, 0xb
add r15d, dword [rdi + r10]
ror eax, 6
xor eax, ecx
mov ecx, r8d
add r10, 4
rol ecx, 7
xor eax, ecx
mov ecx, r9d
add r15d, eax
mov eax, ebx
ror ecx, 0xd
xor eax, r12d
and eax, r8d
xor eax, ebx
lea eax, [r15 + rax]
mov r15d, esi
and r15d, r11d
add eax, edx
mov edx, esi
or edx, r11d
and edx, r9d
or r15d, edx
mov edx, r9d
ror edx, 2
xor edx, ecx
mov ecx, r9d
rol ecx, 0xa
xor edx, ecx
add edx, r15d
lea r15d, [r13 + rax]
mov r13d, esi
add eax, edx
cmp r10, 0x100
mov edx, ebx
jne 0x4027c0
add eax, dword [rsp + 0x28]
add esi, dword [rsp + 0x34]
add r9d, dword [rsp + 0x2c]
add r11d, dword [rsp + 0x30]
add r15d, dword [rsp + 0x38]
add r8d, dword [rsp + 0x3c]
add r12d, dword [rsp + 0x40]
add ebx, dword [rsp + 0x44]
mov dword [rbp + 8], eax
mov eax, dword [rsp + 0x1b0]
mov dword [rbp + 0x14], esi
mov dword [rbp + 0xc], r9d
mov esi, 1
mov dword [rbp + 0x10], r11d
mov dword [rbp + 0x18], r15d
test eax, eax
mov dword [rbp + 0x1c], r8d
mov dword [rbp + 0x20], r12d
mov dword [rbp + 0x24], ebx
mov dword [rbp + 0x28], 0
jne 0x40269f
nop word [rax + rax]
test esi, esi
je 0x4028be
mov eax, 3
sub eax, 1
jne 0x4028b9
add rsp, 0x158
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret