Function at 0x3600e008
Capabilities:
Encode data using xor

Disassembly:
push rdi
sub rsp, 0x60
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov rbx, r9
mov rdi, r8
mov rax, qword [0x3601c018]
mov qword [rsp + 0x50], rax
mov r9, r8
mov r8b, dl
mov dl, cl
lea rcx, [rsp + 0x40]
call fcn.3600d9d8
nop
mov rax, qword [0x3601d400]
test rax, rax
je 0x3600e18f
mov rax, qword [rax + 0x98]
movabs rcx, 0x1b64738cd92ded40
or rax, rcx
mov dword [rsp + 0x30], 0xb3bbc572
mov dword [rsp + 0x28], 0x516a1775
mov dword [rsp + 0x20], 0xcb52dbd1
mov edx, 0x84dd6259
mov ecx, 0xb69183c4
mov r9d, 0x30c9d421
mov r8d, 0xca64d3df
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x2a0]
movabs rcx, 0x29f73cbf971c410d
imul rax, rcx
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x2a0]
movabs rcx, 0x2e3d5fa1ddc08d03
xor rax, rcx
mov dword [rsp + 0x20], 0xe764e280
mov edx, 0xa399a15
mov ecx, 0x3cb2cbda
mov r9d, 0xc3ce02f8
mov r8d, 0x3d45b7a
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x78]
movabs rcx, 0x309091ec30c36513
add rax, rcx
mov edx, 0x86484da4
mov ecx, 0xa08c7f8
mov r8d, 0x768bf7c4
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x1b0]
movabs rcx, 0x38617a0afd6d75ee
sub rax, rcx
mov edx, 0x21290eeb
mov ecx, 0x7f7c404e
mov r9d, 0x5dc05857
mov r8d, 0x27951b39
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0xa8]
movabs rcx, 0xad009501a95be4b
imul rax, rcx
mov dword [rsp + 0x28], 0x7893513
mov dword [rsp + 0x20], 0x7be153bc
mov edx, 0xfd5fd8d3
mov ecx, 0xda574d8c
mov r9d, 0xd4a396c0
mov r8d, 0xed699272
call rax
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
call fcn.360098ec
mov qword [rsp + 0x48], rax
test rax, rax
je 0x3600e3d8
cmp dword [rbx], 0
je 0x3600e3d8
cmp dword [rbx], 0x200
jae 0x3600e221
mov rcx, rax
call fcn.360107cc
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
or ebx, 0xffffffff
cmp rcx, qword [0x3601c010]
je 0x3600e1f7
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600e1f7
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
call fcn.360107d4
nop
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x3601c010]
je 0x3600e21a
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600e21a
call fcn.360107d4
xor eax, eax
jmp 0x3600e43b
mov rcx, qword [0x3601d400]
test rcx, rcx
je 0x3600e342
mov rax, qword [rcx + 0x180]
xor edx, edx
movabs rcx, 0xe71b8419df291c22
div rcx
mov r10, rdx
mov dword [rsp + 0x30], 0xde6ac101
mov dword [rsp + 0x28], 0x4d4d2eae
mov dword [rsp + 0x20], 0xbf2d3ac5
mov edx, 0x68bbb2db
mov ecx, 0x870625a
mov r9d, 0xd7dc16fb
mov r8d, 0x6a68c852
call r10
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x98]
movabs rcx, 0xdca55a8a57ce53d0
imul rax, rcx
mov dword [rsp + 0x30], 0xc73aceaf
mov dword [rsp + 0x28], 0x46e271aa
mov dword [rsp + 0x20], 0x8a7e3606
mov edx, 0xdd6706c0
mov ecx, 0xbad8f2b4
mov r9d, 0xcb523ba5
mov r8d, 0x4046343b
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x88]
movabs rcx, 0x515ab77ddff409b5
sub rax, rcx
mov dword [rsp + 0x20], 0x2f94e597
mov edx, 0xa1b52e01
mov ecx, 0xa14f2346
mov r9d, 0x442d9360
mov r8d, 0xe6ff5e7a
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x268]
movabs rcx, 0xdd9b6381035e401c
or rax, rcx
mov dword [rsp + 0x20], 0xb02810cb
mov edx, 0x169b5388
mov ecx, 0x3520beec
mov r9d, 0x44dcc74
mov r8d, 0xe5a3d59
call rax
mov rax, qword [rsp + 0x48]
mov ecx, dword [rbx]
and ecx, 0xfffffffc
sub ecx, 3
je 0x3600e368
mov rdx, rax
lea r8d, [rcx - 1]
shr r8d, 2
inc r8d
mov ecx, dword [rdi]
xor dword [rdx], ecx
add rdx, 4
sub r8, 1
jne 0x3600e35a
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
or ebx, 0xffffffff
cmp rcx, qword [0x3601c010]
je 0x3600e3a3
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600e39e
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
call fcn.360107d4
mov rax, qword [rsp + 0x48]
jmp 0x3600e3a3
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x3601c010]
je 0x3600e43b
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600e3d1
call fcn.360107d4
mov rax, qword [rsp + 0x48]
jmp 0x3600e43b
mov rax, qword [rsp + 0x48]
jmp 0x3600e43b
test rax, rax
je 0x3600e3e6
mov rcx, rax
call fcn.360107cc
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
or ebx, 0xffffffff
cmp rcx, qword [0x3601c010]
je 0x3600e416
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600e416
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
call fcn.360107d4
nop
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x3601c010]
je 0x3600e439
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600e439
call fcn.360107d4
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret