Function at 0x180060de0
Capabilities:
Encode data using xor
Get file size
Hash data with crc32
Read file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x2c0
mov qword [rsp + 0x98], 0xfffffffffffffffe
mov rax, qword [0x1800ff050]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
mov rdi, r8
mov r12, rdx
mov rsi, rcx
test rdx, rdx
je 0x1800615f2
cmp word [rdx], 0
je 0x1800615f2
test r8, r8
jne 0x180060e3b
mov eax, 0x80070057
jmp 0x1800615f7
mov qword [rsp + 0xa0], r8
mov rax, qword [r8]
mov rcx, r8
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
xor ebx, ebx
mov qword [rsp + 0x40], rbx
mov rax, qword [rdi]
lea r8, [rsp + 0x40]
lea rdx, [0x1800e1b88]
mov rcx, rdi
call qword [rax]
mov ebp, eax
test eax, eax
js 0x1800615d4
cmp eax, 1
je 0x1800615d4
cmp qword [rsp + 0x40], rbx
jne 0x180060e95
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, 0x80004005
jmp 0x1800615f7
mov rcx, qword [rsi + 0x70]
cmp rcx, 0xffffffffffffffff
je 0x180060ea5
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsi + 0x380]
test rcx, rcx
je 0x180060ebd
call fcn.18006aaac
mov qword [rsi + 0x380], rbx
mov edx, 0xc0000000
mov r13d, 0x80000000
cmp dword [rsi + 0x24], 0
cmovne edx, r13d
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x20000000
mov dword [rsp + 0x20], 3
xor r9d, r9d
lea r8d, [r9 + 1]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsi + 0x70], rax
cmp rax, 0xffffffffffffffff
jne 0x180060fb1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
cmp eax, 5
je 0x180060f54
cmp eax, 0x20
je 0x180060f54
cmp eax, 0xa7
je 0x180060f54
cmp eax, 0x21
je 0x180060f54
cmp eax, 0x13
je 0x180060f54
test eax, eax
jle 0x180060f33
movzx ebp, ax
or ebp, 0x80070000
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180060f44
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
nop
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
xor r9d, r9d
lea r8d, [r9 + 1]
mov edx, r13d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsi + 0x70], rax
cmp rax, 0xffffffffffffffff
jne 0x180060faa
call fcn.180003180
mov ebx, eax
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180060f9a
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
nop
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + reloc.WS2_32.dll_recv]
mov eax, ebx
jmp 0x1800615f7
mov dword [rsi + 0x24], 1
mov byte [rsp + 0xb0], 0
xor edx, edx
mov r8d, 0x1ff
lea rcx, [rsp + 0xb1]
call fcn.18006cf60
mov r13, qword [rsi + 0x70]
cmp r13, 0xffffffffffffffff
je 0x1800615b1
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov r12d, 0x200
test eax, eax
jne 0x180061004
call fcn.180003180
mov ebp, eax
jmp 0x1800610a7
mov dword [rsp + 0x48], ebx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x48]
mov r8d, r12d
lea rdx, [rsp + 0xb0]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1800610b8
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
cmp eax, 0x6f8
je 0x180061053
cmp eax, 0x3e6
je 0x180061053
test eax, eax
jle 0x1800610a7
movzx ebp, ax
or ebp, 0x80070000
jmp 0x1800610a7
mov edx, r12d
lea rcx, [rsi + 0x10]
call fcn.180003da0
mov ebp, eax
test eax, eax
js 0x1800610a7
cmp eax, 1
je 0x1800610a7
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x48]
mov r8d, r12d
mov rdx, qword [rsi + 0x10]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x180061091
call fcn.180003180
mov ebp, eax
jmp 0x1800610a7
mov r8, r12
mov rdx, qword [rsi + 0x10]
lea rcx, [rsp + 0xb0]
call fcn.18006c2d0
jmp 0x1800610b8
test ebp, ebp
js 0x1800615b6
cmp ebp, 1
je 0x1800615b6
cmp dword [rsp + 0xb0], 0x5120372
je 0x1800610e9
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800610d6
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, 0xe00e1001
jmp 0x1800615f7
lea rdx, [rsp + 0x60]
mov rcx, qword [rsi + 0x70]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x180061124
call fcn.180003180
mov ebx, eax
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180061114
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
nop
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + reloc.WS2_32.dll_recv]
mov eax, ebx
jmp 0x1800615f7
mov rax, qword [rsp + 0x60]
cqo
and edx, 0x1ff
add rax, rdx
mov rcx, rax
and eax, 0x1ff
sar rcx, 9
cmp rax, rdx
je 0x180061169
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180061156
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, 0xe0037001
jmp 0x1800615f7
mov qword [rsp + 0x60], rcx
mov dword [rsi + 0x80], ecx
mov dword [rsi + 0x88], ebx
mov eax, dword [rsp + 0xb4]
test eax, eax
jne 0x1800611dc
mov dword [rsi + 0x78], ebx
mov edx, dword [rsp + 0xc0]
mov dword [rsi + 0x84], edx
mov eax, dword [rsp + 0xcc]
shl rax, 9
mov qword [rsi + 0x30], rax
mov rcx, rsi
call fcn.180063160
mov ebp, eax
test eax, eax
js 0x1800611bb
cmp eax, 1
jne 0x18006141b
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800611cc
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
cmp eax, 1
jne 0x1800612dd
mov r8d, ebx
mov rcx, rbx
nop dword [rax + rax]
movzx eax, byte [rsp + rcx + 0xb0]
add r8d, eax
inc rcx
cmp rcx, r12
jl 0x1800611f0
mov edx, dword [rsp + 0xc8]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
movzx eax, al
add ecx, eax
movzx eax, dl
add ecx, eax
mov eax, edx
shr eax, 0x18
add ecx, eax
sub r8d, ecx
cmp edx, r8d
je 0x180061254
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180061241
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, 0xe0037001
jmp 0x1800615f7
mov dword [rsi + 0x78], 1
mov eax, dword [rsp + 0xc0]
mov dword [rsi + 0x370], eax
shr eax, 9
mov dword [rsi + 0x374], eax
mov eax, dword [rsp + 0xc4]
mov dword [rsi + 0x378], eax
mov eax, dword [rsp + 0xcc]
shl rax, 9
mov qword [rsi + 0x30], rax
mov rcx, rsi
call fcn.180062e80
mov ebp, eax
test eax, eax
js 0x1800612bc
cmp eax, 1
je 0x1800612bc
mov rcx, rsi
call fcn.180061620
test eax, eax
jne 0x18006141b
mov dword [rsi + 0x24], 1
jmp 0x18006141b
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800612cd
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
cmp eax, 2
jne 0x180061590
mov r10d, dword [rsp + 0xbc]
mov dword [rsp + 0xbc], ebx
lea r9, [rsp + 0xb0]
or r8d, 0xffffffff
lea r11, [0x1801042e0]
nop dword [rax + rax]
mov ecx, r8d
movzx eax, byte [r9]
xor rcx, rax
movzx edx, cl
mov eax, r8d
shr eax, 8
mov r8d, dword [r11 + rdx*4]
xor r8d, eax
inc r9
sub r12d, 1
jne 0x180061310
not r8d
cmp r10d, r8d
je 0x18006135f
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18006134c
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, 0xe0037001
jmp 0x1800615f7
mov dword [rsi + 0x78], 2
test byte [rsp + 0xb8], 1
je 0x1800613bb
mov dword [rsi + 0x88], 1
mov r8, qword [rsp + 0x40]
lea rdx, [rsp + 0xb0]
mov rcx, rsi
call fcn.180061d80
mov ebp, eax
test eax, eax
js 0x18006139a
cmp eax, 1
jne 0x180061408
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800613ab
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
mov eax, dword [rsp + 0xc0]
mov dword [rsi + 0x370], eax
shr eax, 9
mov dword [rsi + 0x374], eax
mov eax, dword [rsp + 0xc4]
mov dword [rsi + 0x378], eax
mov eax, dword [rsp + 0xcc]
shl rax, 9
mov qword [rsi + 0x30], rax
mov rcx, rsi
call fcn.180062e80
mov ebp, eax
test eax, eax
js 0x180061572
cmp eax, 1
je 0x180061572
mov rcx, rsi
call fcn.180061620
test eax, eax
jne 0x18006141b
mov dword [rsi + 0x24], 1
mov ecx, 8
call fcn.18006a7f8
test rax, rax
je 0x180061434
lea rcx, [rsp + 0x68]
mov qword [rax], rcx
jmp 0x180061437
mov rax, rbx
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rbx
xor eax, eax
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x54], ebx
mov rax, qword [rsi + 0x30]
shr rax, 9
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.180062fc0
mov ebp, eax
test eax, eax
js 0x18006151c
cmp eax, 1
je 0x18006151c
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x68]
call fcn.180006a30
mov r9d, 1
mov r8, qword [rsp + 0x40]
lea rdx, [rsp + 0x68]
mov rcx, rsi
call fcn.180003550
mov ebp, eax
test eax, eax
jne 0x1800614c6
mov dword [rsi + 0x28], 1
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1800614d8
call fcn.18006a4d4
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rbx
mov rcx, qword [rsp + 0x68]
call fcn.18006a4d4
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18006150c
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x18006152e
call fcn.18006a4d4
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rbx
mov rcx, qword [rsp + 0x68]
call fcn.18006a4d4
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180061562
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180061583
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800615a1
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, 0xe0037000
jmp 0x1800615f7
mov ebp, 0x80070057
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800615c7
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800615e5
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebp
jmp 0x1800615f7
mov eax, 0xe00e1001
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.18006a4f0
add rsp, 0x2c0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret