Function at 0x3600e880
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.3600e12c
nop
mov rax, qword [0x3601d400]
test rax, rax
je 0x3600e9b5
mov rax, qword [rax + 0x80]
movabs rcx, 0x4d8c631cc9661deb
imul rax, rcx
mov edx, 0x17e0ee7
mov ecx, 0xb449e38e
mov r8d, 0x96c8631d
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x120]
movabs rcx, 0xf85caa9a7940f417
or rax, rcx
mov edx, 0xabd4de70
mov ecx, 0x2df0b75e
mov r8d, 0x82d7c61a
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x30]
movabs rcx, 0x7c233540a69ea063
xor rax, rcx
mov edx, 0x23e9b680
mov ecx, 0x3275f03e
mov r8d, 0xdc1f9e52
call rax
mov rax, qword [0x3601d400]
mov rax, qword [rax + 0x90]
xor edx, edx
movabs rcx, 0x3db13ac3dadcd026
div rcx
mov edx, 0xf5841750
mov ecx, 0x149e31af
mov r9d, 0x7c1d89ca
mov r8d, 0xf001be3
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 8]
movabs rcx, 0xb3cc083cea2027f9
imul rax, rcx
mov dword [rsp + 0x20], 0xdca89c04
mov edx, 0x7a4aba1f
mov ecx, 0x9394a44a
mov r9d, 0x40c50764
mov r8d, 0x4d73e972
call rax
xor r8d, r8d
mov rdx, rbx
mov rcx, qword [rsp + 0x40]
call fcn.36009fa4
mov qword [rsp + 0x48], rax
test rax, rax
je 0x3600ebba
cmp dword [rbx], 0
je 0x3600ebba
cmp dword [rbx], 0x200
jae 0x3600ea47
mov rcx, rax
call fcn.36010af0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
or ebx, 0xffffffff
cmp rcx, qword [0x3601c010]
je 0x3600ea1d
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600ea1d
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
call fcn.36010af8
nop
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x3601c010]
je 0x3600ea40
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600ea40
call fcn.36010af8
xor eax, eax
jmp 0x3600ec1d
mov rcx, qword [0x3601d400]
test rcx, rcx
je 0x3600eb24
mov rax, qword [rcx + 0x188]
movabs rcx, 0x1bc7ba60fc573f23
sub rax, rcx
call rax
mov rax, qword [0x3601d400]
mov rax, qword [rax + 0x218]
xor edx, edx
movabs rcx, 0xd1a639473f46c7b6
div rcx
mov dword [rsp + 0x30], 0x2d76c23d
mov dword [rsp + 0x28], 0x8ea3d4bb
mov dword [rsp + 0x20], 0xc47e59f1
mov edx, 0xb395c5b8
mov ecx, 0x8a23b0d5
mov r9d, 0x83792bfe
mov r8d, 0x9bbc6f0c
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0x60]
movabs rcx, 0x6381b64bfe636307
sub rax, rcx
call rax
mov r11, qword [0x3601d400]
mov rax, qword [r11 + 0xc8]
movabs rcx, 0x6c42ed2c2aa7fb39
add rax, rcx
mov dword [rsp + 0x30], 0x440d68ac
mov dword [rsp + 0x28], 0x445e360a
mov dword [rsp + 0x20], 0xce6242e2
mov edx, 0xa9794ab
mov ecx, 0x884ff5bf
mov r9d, 0x97878218
mov r8d, 0x9a7c559c
call rax
mov rax, qword [rsp + 0x48]
mov ecx, dword [rbx]
and ecx, 0xfffffffc
sub ecx, 3
je 0x3600eb4a
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 0x3600eb3c
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
or ebx, 0xffffffff
cmp rcx, qword [0x3601c010]
je 0x3600eb85
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600eb80
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
call fcn.36010af8
mov rax, qword [rsp + 0x48]
jmp 0x3600eb85
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x3601c010]
je 0x3600ec1d
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600ebb3
call fcn.36010af8
mov rax, qword [rsp + 0x48]
jmp 0x3600ec1d
mov rax, qword [rsp + 0x48]
jmp 0x3600ec1d
test rax, rax
je 0x3600ebc8
mov rcx, rax
call fcn.36010af0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
or ebx, 0xffffffff
cmp rcx, qword [0x3601c010]
je 0x3600ebf8
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600ebf8
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
call fcn.36010af8
nop
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x3601c010]
je 0x3600ec1b
mov eax, ebx
lock xadd dword [rcx], eax
add eax, ebx
test eax, eax
jg 0x3600ec1b
call fcn.36010af8
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret