Function at 0x180001000
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push rbp
push rsi
push r12
push r15
lea rbp, [rsp - 0x138]
sub rsp, 0x238
mov dword [rbp + 0x160], 0x49c464
mov esi, ecx
mov eax, dword [rbp + 0x160]
mov r15d, ecx
mov eax, dword [rbp + 0x160]
mov r12b, 1
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
mov rcx, qword [0x18000f020]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
test rcx, rcx
je 0x18000118e
mov dword [rbp + 0x160], 0x49c464
xor edx, edx
mov eax, dword [rbp + 0x160]
mov r8d, 0x8000
mov eax, dword [rbp + 0x160]
mov rcx, qword [0x18000f020]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
call qword [0x18000f050]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, dword [0x18000f020]
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
xor ecx, ecx
mov eax, dword [rbp + 0x160]
mov r8d, 0x3000
mov eax, dword [rbp + 0x160]
mov edx, dword [0x18000b000]
add eax, esi
imul eax, eax, 0x33737982
lea r9d, [rcx + 4]
mov dword [rbp + 0x160], eax
call qword [0x18000f048]
mov qword [0x18000f020], rax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, esi
imul eax, eax, 0x33737982
cmp qword [0x18000f020], 0
mov dword [rbp + 0x160], eax
je 0x180001d7d
movzx ecx, byte [rbp + 0x160]
xor edx, edx
mov dword [rbp + 0x160], 0x49c464
mov r8d, 0x3000
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
mov qword [rsp + 0x230], rbx
imul eax, eax, 0x33737982
lea rbx, section..data
mov qword [rsp + 0x228], rdi
mov qword [rsp + 0x220], r14
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [0x18000b000]
mov dword [rbp + 0x170], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
mov rdi, qword [0x18000f020]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, edi
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x170]
div dword [0x18000f018]
movzx edx, byte [rbp + 0x160]
mov r14d, eax
mov dword [rbp + 0x160], 0x49c464
mov ecx, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
xor ecx, ecx
add eax, edx
mov edx, dword [0x18000b000]
imul eax, eax, 0x33737982
lea r9d, [rcx + 4]
mov dword [rbp + 0x160], eax
call qword [0x18000f048]
movzx edx, byte [rbp + 0x160]
mov r9, rax
mov dword [rbp + 0x160], 0x49c464
mov r10, r9
mov ecx, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, edx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
test r9, r9
je 0x180001d65
movzx ecx, byte [rbp + 0x160]
xor edx, edx
mov dword [rbp + 0x160], 0x49c464
xor r8d, r8d
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x170]
test eax, eax
je 0x18000152e
nop dword [rax]
movzx ecx, byte [rbp + 0x160]
inc edx
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
test dl, 1
jne 0x18000148f
xor edx, edx
dec r8d
jmp 0x180001498
movzx eax, byte [rbx]
mov byte [r9], al
inc r9
movzx ecx, byte [rbp + 0x160]
inc rbx
mov dword [rbp + 0x160], 0x49c464
inc r8d
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x170]
cmp r8d, eax
jb 0x180001400
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
lea eax, [r14 - 1]
mov dword [rbp + 0x168], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x170]
dec eax
add qword [0x18000f020], rax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
nop dword [rax]
mov dword [rbp + 0x160], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [0x18000f018]
dec eax
mov dword [rbp + 0x178], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x178]
imul eax, r14d
mov dword [rbp + 0x170], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov ecx, dword [rbp + 0x170]
mov eax, dword [rbp + 0x168]
add ecx, eax
mov dword [rbp + 0x170], ecx
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x170]
movzx ecx, byte [rax + r10]
mov byte [rbp + 0x160], cl
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x170], 0x49c464
mov eax, dword [rbp + 0x170]
mov eax, dword [rbp + 0x170]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x170], eax
movzx ecx, byte [rbp + 0x160]
mov rax, qword [0x18000f020]
mov byte [rax], cl
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
dec qword [0x18000f020]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x178]
dec eax
mov dword [rbp + 0x178], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x178]
test eax, eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
jns 0x1800016ca
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x168]
dec eax
mov dword [rbp + 0x168], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x168]
test eax, eax
jns 0x180001649
movzx ecx, byte [rbp + 0x160]
xor r11d, r11d
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
mov qword [0x18000f020], rdi
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
test r14d, r14d
je 0x180001d41
lea rbx, [0x18000b010]
movzx ecx, byte [rbp + 0x160]
xor edx, edx
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
mov r10d, dword [0x18000f018]
add eax, ecx
imul eax, eax, 0x33737982
imul r10d, r11d
mov dword [rbp + 0x160], eax
add r10, qword [0x18000f020]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, esi
imul eax, eax, 0x33737982
cmp dword [0x18000f018], edx
mov dword [rbp + 0x160], eax
jbe 0x180001a1a
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx eax, byte [rdx + r10]
mov byte [rsp + rdx + 0x20], al
inc edx
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
cmp edx, dword [0x18000f018]
mov dword [rbp + 0x160], eax
jb 0x1800019b1
movzx ecx, byte [rbp + 0x160]
xor edx, edx
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
cmp dword [0x18000f018], edx
mov dword [rbp + 0x160], eax
jbe 0x180001ac4
movzx r8d, r12b
nop word [rax + rax]
mov dword [rbp + 0x160], 0x49c464
lea rcx, [rsp + 0x20]
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, edx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, edx
add rcx, rax
movzx eax, byte [rcx]
xor eax, r8d
mov byte [rcx], al
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, edx
inc edx
imul eax, eax, 0x33737982
cmp edx, dword [0x18000f018]
mov dword [rbp + 0x160], eax
jb 0x180001a60
mov dword [rbp + 0x160], 0x49c464
xor edx, edx
mov eax, dword [rbp + 0x160]
inc r12b
mov eax, dword [rbp + 0x160]
add eax, esi
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [0x18000f018]
imul eax, r15d
mov dword [rbp + 0x160], 0x49c464
lea r9, [rbx + rax*2]
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, r9d
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
lea eax, [r15 + 1]
mov dword [rbp + 0x168], eax
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov eax, dword [rbp + 0x168]
div dword [0x18000f01c]
mov dword [rbp + 0x168], edx
xor edx, edx
mov ecx, dword [rbp + 0x168]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov r15d, dword [rbp + 0x168]
movzx ecx, byte [rbp + 0x160]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, esi
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, esi
imul eax, eax, 0x33737982
cmp dword [0x18000f018], edx
mov dword [rbp + 0x160], eax
jbe 0x180001d0a
nop dword [rax]
nop word [rax + rax]
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, edx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, edx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
movzx eax, word [r9 + rdx*2]
mov word [rbp + 0x160], ax
mov dword [rbp + 0x168], 0x49c464
mov eax, dword [rbp + 0x168]
mov eax, dword [rbp + 0x168]
add eax, edx
imul eax, eax, 0x33737982
mov dword [rbp + 0x168], eax
movzx eax, word [rbp + 0x160]
movzx ecx, byte [rsp + rax + 0x20]
mov byte [rdx + r10], cl
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, edx
inc edx
imul eax, eax, 0x33737982
cmp edx, dword [0x18000f018]
mov dword [rbp + 0x160], eax
jb 0x180001c50
movzx ecx, byte [rbp + 0x160]
inc r11d
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, ecx
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
cmp r11d, r14d
jb 0x180001946
mov dword [rbp + 0x160], 0x49c464
mov eax, dword [rbp + 0x160]
mov eax, dword [rbp + 0x160]
add eax, esi
imul eax, eax, 0x33737982
mov dword [rbp + 0x160], eax
mov rdi, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
mov r14, qword [rsp + 0x220]
add rsp, 0x238
pop r15
pop r12
pop rsi
pop rbp
ret