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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rsi, qword [rdx + 8]
mov rbx, qword [rdx]
mov rbp, rsi
mov r12, rcx
mov r13d, esi
shr rbp, 0x20
test r8, r8
mov r15d, ebp
je 0x4395f0
mov byte [r8], 0
test esi, esi
je 0x4396f0
test rbx, rbx
je 0x4396f0
lea edx, [rsi*8]
mov edi, esi
xor r9d, r9d
xor edx, 0x9747b28c
imul eax, dword [rbx + r9*8], 0x5bd1e995
add r9, 1
imul edx, edx, 0x5bd1e995
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul eax, ecx, 0x5bd1e995
xor edx, eax
cmp r9, rdi
jne 0x439613
mov eax, edx
shr eax, 0xd
xor edx, eax
imul edx, edx, 0x5bd1e995
mov eax, edx
shr eax, 0xf
xor edx, eax
mov eax, edx
mov ecx, edx
mov dword [rsp + 0x48], edx
and eax, 0xfffff
mov qword [rsp + 0x38], rax
lea r14, [r12 + rax*8]
mov rax, qword [r14]
and rax, 0xfffffffffffffffe
mov r10, r15
and ecx, 0xfff00000
shl r10, 0x20
test rax, rax
mov qword [rsp + 0x40], rax
mov r11d, r13d
jne 0x439698
jmp 0x439703
mov rax, qword [rax]
test rax, rax
je 0x439703
mov edx, dword [rax + 0xc]
and edx, 0xfff00000
cmp ecx, edx
jne 0x439690
mov rdx, r11
or rdx, r10
cmp qword [rax + 0x10], rdx
jne 0x439690
mov r9d, dword [rax + 0x10]
test r9, r9
je 0x4396f2
mov rdx, qword [rax + 0x18]
cmp qword [rbx], rdx
jne 0x439690
xor edx, edx
mov dword [rsp + 0x4c], ecx
nop dword [rax]
add rdx, 1
cmp rdx, r9
je 0x4396f2
mov rcx, qword [rbx + rdx*8]
cmp qword [rax + rdx*8 + 0x18], rcx
je 0x4396d0
mov ecx, dword [rsp + 0x4c]
jmp 0x439690
xor eax, eax
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x38]
xor edx, edx
lea r9, [r12 + rax*8]
jmp 0x439730
cmp edx, 9
jg 0x4397d0
pause
pause
pause
pause
pause
pause
pause
pause
pause
pause
add edx, 1
mov rcx, qword [r14]
test cl, 1
jne 0x439710
mov r10, rcx
mov rax, rcx
or r10, 1
lock cmpxchg qword [r9], r10
cmp rcx, rax
jne 0x439710
cmp qword [rsp + 0x40], rax
mov r10, rax
je 0x4397f9
test rax, rax
je 0x4397f9
mov ecx, dword [rsp + 0x48]
shl r15, 0x20
and ecx, 0xfff00000
jmp 0x43977b
mov rax, qword [rax]
test rax, rax
je 0x4397f9
mov edx, dword [rax + 0xc]
and edx, 0xfff00000
cmp edx, ecx
jne 0x439773
mov rdx, r13
or rdx, r15
cmp qword [rax + 0x10], rdx
jne 0x439773
mov r9d, dword [rax + 0x10]
test r9, r9
je 0x4397c4
mov rdx, qword [rax + 0x18]
cmp qword [rbx], rdx
jne 0x439773
xor edx, edx
jmp 0x4397bb
mov r11, qword [rbx + rdx*8]
cmp qword [rax + rdx*8 + 0x18], r11
jne 0x439773
add rdx, 1
cmp r9, rdx
jne 0x4397b0
mov qword [r14], r10
jmp 0x4396f2
mov qword [rsp + 0x58], r8
xor ecx, ecx
mov qword [rsp + 0x50], r9
mov dword [rsp + 0x4c], edx
call qword [sym.imp.kernel32.dll_Sleep]
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x50]
mov edx, dword [rsp + 0x4c]
jmp 0x43972d
mov r13, qword [rsp + 0x38]
mov r9d, 1
shr r13, 0xc
lea rax, [r13*4 + 0x800000]
lock xadd dword [r12 + rax], r9d
add qword [r12 + 0x800400], 1
add r9d, 1
cmp r9d, 0x7fffff
ja 0x439c7d
lea eax, [rsi - 1]
shl r13d, 0x17
lea r15, [rax*8 + 0x20]
or r13d, r9d
mov dword [rsp + 0x4c], r13d
je 0x439c59
nop dword [rax]
mov rdx, qword [0x006bc968]
mov rax, qword [0x006bc970]
test rdx, rdx
je 0x439b8a
lea rcx, [r15 + rdx]
cmp rax, rcx
jb 0x439b8a
mov rax, rdx
lock cmpxchg qword [0x006bc968], rcx
cmp rdx, rax
jne 0x439850
mov rax, rdx
mov edx, dword [rsp + 0x48]
lea r9, [rax + 0x18]
shl rdi, 3
mov ecx, dword [rsp + 0x4c]
add qword [r12 + 0x800408], r15
mov dword [rax + 0x10], esi
mov dword [rax + 0x14], ebp
and edx, 0xfff00000
mov dword [rax + 0xc], edx
lea rdx, [rbx + 0x10]
cmp rdx, r9
mov dword [rax + 8], ecx
lea rdx, [rax + 0x28]
setbe cl
cmp rbx, rdx
setae dl
or cl, dl
je 0x439c41
cmp rdi, 0x16
jbe 0x439c41
mov rcx, rbx
neg rcx
and ecx, 0xf
cmp rcx, rdi
cmova rcx, rdi
xor edx, edx
test rcx, rcx
je 0x4399ec
movzx edx, byte [rbx]
cmp rcx, 1
mov byte [rax + 0x18], dl
je 0x439d20
movzx edx, byte [rbx + 1]
cmp rcx, 2
mov byte [rax + 0x19], dl
je 0x439d16
movzx edx, byte [rbx + 2]
cmp rcx, 3
mov byte [rax + 0x1a], dl
je 0x439d0c
movzx edx, byte [rbx + 3]
cmp rcx, 4
mov byte [rax + 0x1b], dl
je 0x439d02
movzx edx, byte [rbx + 4]
cmp rcx, 5
mov byte [rax + 0x1c], dl
je 0x439cf8
movzx edx, byte [rbx + 5]
cmp rcx, 6
mov byte [rax + 0x1d], dl
je 0x439cee
movzx edx, byte [rbx + 6]
cmp rcx, 7
mov byte [rax + 0x1e], dl
je 0x439ce4
movzx edx, byte [rbx + 7]
cmp rcx, 8
mov byte [rax + 0x1f], dl
je 0x439cda
movzx edx, byte [rbx + 8]
cmp rcx, 9
mov byte [rax + 0x20], dl
je 0x439cd0
movzx edx, byte [rbx + 9]
cmp rcx, 0xa
mov byte [rax + 0x21], dl
je 0x439cc6
movzx edx, byte [rbx + 0xa]
cmp rcx, 0xb
mov byte [rax + 0x22], dl
je 0x439cbc
movzx edx, byte [rbx + 0xb]
cmp rcx, 0xc
mov byte [rax + 0x23], dl
je 0x439cb2
movzx edx, byte [rbx + 0xc]
cmp rcx, 0xd
mov byte [rax + 0x24], dl
je 0x439ca8
movzx edx, byte [rbx + 0xd]
cmp rcx, 0xe
mov byte [rax + 0x25], dl
je 0x439c9e
movzx edx, byte [rbx + 0xe]
mov byte [rax + 0x26], dl
mov edx, 0xf
lea rsi, [rdi - 1]
mov rbp, rdi
sub rbp, rcx
sub rsi, rcx
lea r11, [rbp - 0x10]
shr r11, 4
add r11, 1
mov r12, r11
shl r12, 4
cmp rsi, 0xe
jbe 0x439a44
lea r13, [rbx + rcx]
xor esi, esi
lea r15, [rax + rcx + 0x18]
xor ecx, ecx
movdqa xmm0, xmmword [r13 + rcx]
add rsi, 1
movups xmmword [r15 + rcx], xmm0
add rcx, 0x10
cmp r11, rsi
ja 0x439a1f
add rdx, r12
cmp r12, rbp
je 0x439b72
movzx ecx, byte [rbx + rdx]
mov byte [r9 + rdx], cl
lea rcx, [rdx + 1]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 1]
mov byte [r9 + rdx + 1], cl
lea rcx, [rdx + 2]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 2]
mov byte [r9 + rdx + 2], cl
lea rcx, [rdx + 3]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 3]
mov byte [r9 + rdx + 3], cl
lea rcx, [rdx + 4]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 4]
mov byte [r9 + rdx + 4], cl
lea rcx, [rdx + 5]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 5]
mov byte [r9 + rdx + 5], cl
lea rcx, [rdx + 6]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 6]
mov byte [r9 + rdx + 6], cl
lea rcx, [rdx + 7]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 7]
mov byte [r9 + rdx + 7], cl
lea rcx, [rdx + 8]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 8]
mov byte [r9 + rdx + 8], cl
lea rcx, [rdx + 9]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 9]
mov byte [r9 + rdx + 9], cl
lea rcx, [rdx + 0xa]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 0xa]
mov byte [r9 + rdx + 0xa], cl
lea rcx, [rdx + 0xb]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 0xb]
mov byte [r9 + rdx + 0xb], cl
lea rcx, [rdx + 0xc]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 0xc]
mov byte [r9 + rdx + 0xc], cl
lea rcx, [rdx + 0xd]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 0xd]
mov byte [r9 + rdx + 0xd], cl
lea rcx, [rdx + 0xe]
cmp rdi, rcx
jbe 0x439b72
movzx ecx, byte [rdx + rbx + 0xe]
mov byte [r9 + rdx + 0xe], cl
mov qword [rax], r10
mov qword [r14], rax
test r8, r8
je 0x4396f2
mov byte [r8], 1
jmp 0x4396f2
lea rcx, [0x006bc960]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r8
call fcn.00438d40
mov r10, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
nop word [rax + rax]
mov rdx, qword [0x006bc968]
mov rax, qword [0x006bc970]
test rdx, rdx
je 0x439bec
lea rcx, [r15 + rdx]
cmp rax, rcx
jb 0x439bec
mov rax, rdx
lock cmpxchg qword [0x006bc968], rcx
cmp rdx, rax
jne 0x439bb0
mov rax, rdx
mov byte [0x006bc960], 0
jmp 0x439888
cmp r15, 0x10000
mov r13d, 0x10000
mov qword [rsp + 0x40], r8
cmovae r13, r15
mov qword [rsp + 0x38], r10
mov qword [0x006bc968], 0
lea rdx, str.stack_depot
mov rcx, r13
call fcn.0040d510
add r13, rax
mov qword [0x006bc970], r13
mov qword [0x006bc968], rax
mov r10, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
jmp 0x439bb0
xor edx, edx
movzx ecx, byte [rbx + rdx]
mov byte [r9 + rdx], cl
add rdx, 1
cmp rdi, rdx
jne 0x439c43
jmp 0x439b72
lea r8, str.__id_______0__
xor r9d, r9d
mov edx, 0x7d
mov qword [rsp + 0x20], 0
lea rcx, str....._sanitizer_common_sanitizer_stackdepotbase.h
call fcn.00406910
mov qword [rsp + 0x20], 0x800000
lea r8, str.__id_______kMaxId__
mov edx, 0x7b
lea rcx, str....._sanitizer_common_sanitizer_stackdepotbase.h
call fcn.00406910
mov edx, 0xe
jmp 0x4399ec
mov edx, 0xd
jmp 0x4399ec
mov edx, 0xc
jmp 0x4399ec
mov edx, 0xb
jmp 0x4399ec
mov edx, 0xa
jmp 0x4399ec
mov edx, 9
jmp 0x4399ec
mov edx, 8
jmp 0x4399ec
mov edx, 7
jmp 0x4399ec
mov edx, 6
jmp 0x4399ec
mov edx, 5
jmp 0x4399ec
mov edx, 4
jmp 0x4399ec
mov edx, 3
jmp 0x4399ec
mov edx, 2
jmp 0x4399ec
mov edx, 1
jmp 0x4399ec