Function at 0x18003b640
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov ebx, dword [rbp + 0x58]
mov rdi, r9
imul eax, edx, 0xd80
mov r11, rcx
mov r14d, edx
mov dword [rsp + 0x40], edx
mov dword [rbp - 0x14], eax
cmp edx, eax
ja 0x18003bac5
movzx eax, word [rbp + 0x58]
movzx r10d, word [rbp + 0x58]
movsxd rcx, dword [rsp + 0x50]
movzx r9d, word [rbp + 0x58]
mov rdx, rcx
movzx r8d, word [rbp + 0x58]
movzx r12d, word [rbp + 0x58]
mov r13d, dword [rbp - 0x60]
movzx r15d, word [rsp + 0x60]
mov esi, dword [rbp + 0x58]
mov dword [rbp - 0x2c], eax
movzx eax, word [rbp + 0x58]
mov dword [rbp - 0x64], eax
movzx eax, word [rbp + 0x58]
mov dword [rbp - 0x58], r10d
movzx r10d, word [rbp + 0x58]
mov dword [rbp - 0x68], eax
mov qword [rbp - 0x40], rcx
mov dword [rsp + 0x5c], r9d
mov dword [rbp - 0x38], ebx
mov dword [rsp + 0x58], r8d
mov dword [rbp - 0x5c], r12d
mov dword [rsp + 0x48], r10d
nop dword [rax]
cmp r14d, 0x1d711
ja 0x18003b878
je 0x18003b86e
cmp r14d, 0xb4f
ja 0x18003b7ab
je 0x18003b77d
mov eax, r14d
sub eax, 0xf
je 0x18003b752
sub eax, 0x3c
je 0x18003c06b
sub eax, 0x86
je 0x18003b746
cmp eax, 0x2b
jne 0x18003bba7
xor eax, eax
mov ecx, eax
mov dword [rsp + 0x50], eax
mov edx, eax
mov qword [rbp - 0x40], rax
jmp 0x18003bba7
mov dword [rbp - 0x2c], 0xd49a
jmp 0x18003bba7
xor edx, edx
mov qword [rbp - 8], r11
mov r8d, 0x500
mov rcx, r11
call sub.VCRUNTIME140.dll_memset
mov r11, qword [rbp + 0x50]
xor eax, eax
mov r10d, dword [rsp + 0x48]
mov dword [r11 + 0x500], eax
jmp 0x18003bb95
mov rax, qword [rbp + 0x70]
xor edx, edx
mov rcx, qword [rbp - 8]
mov r8d, 0x640
mov eax, dword [rax]
mov dword [rcx + 0x504], eax
add rcx, 0x508
call sub.VCRUNTIME140.dll_memset
mov r10d, dword [rsp + 0x48]
jmp 0x18003bb91
cmp r14d, 0x168f
je 0x18003c07d
cmp r14d, 0x9d91
je 0x18003b857
cmp r14d, 0xbdfc
je 0x18003b7e8
cmp r14d, 0x13a51
jne 0x18003bba7
mov eax, 3
mov dword [rbp - 0x68], eax
jmp 0x18003bba7
mov rax, qword [rbp + 0x78]
cmp ecx, dword [rax]
jge 0x18003bba7
mov r14, qword [rbp + 0x70]
lea rdi, [rdi + rdx*4]
sub r14, qword [rbp + 0x68]
mov ebx, dword [rsp + 0x50]
mov eax, dword [r14 + rdi]
lea rcx, [rsp + 0x50]
xor eax, dword [r11]
mov edx, 0x11b
mov dword [rsp + 0x50], eax
call fcn.180005600
mov rdx, qword [rbp - 0x40]
inc ebx
mov r11, qword [rbp + 0x50]
inc rdx
mov dword [rdi], eax
lea rdi, [rdi + 4]
mov rax, qword [rbp + 0x78]
mov qword [rbp - 0x40], rdx
cmp ebx, dword [rax]
jl 0x18003b804
mov r10d, dword [rsp + 0x48]
mov r14d, dword [rsp + 0x40]
mov rdi, qword [rbp + 0x68]
mov dword [rsp + 0x50], ebx
mov ebx, dword [rbp - 0x38]
jmp 0x18003bb99
mov r9d, 0x5c55
mov dword [rbp - 0x64], 0xc0a9
mov dword [rsp + 0x5c], r9d
jmp 0x18003bba7
xor eax, eax
mov dword [rbp - 0x58], eax
jmp 0x18003bba7
cmp r14d, 0x4e6d1
ja 0x18003baa6
je 0x18003ba7c
cmp r14d, 0x273d1
je 0x18003b9d6
cmp r14d, 0x31091
je 0x18003b97a
cmp r14d, 0x3ad51
je 0x18003b8d2
cmp r14d, 0x44a11
jne 0x18003bba7
mov rax, qword [rbp + 0x78]
movsx eax, word [rax]
mov dword [rbp - 0x34], eax
movsx eax, word [rsp + 0x28]
add dword [rbp - 0x34], eax
jmp 0x18003bba7
movsx edi, ax
lea r8, [rsp + 0x30]
mov word [rsp + 0x30], ax
lea rdx, [rsp + 0x40]
mov eax, dword [rbp - 0x80]
mov ecx, 0xfa
sar edi, 1
add eax, edi
mov dword [rsp + 0x40], eax
call fcn.180008920
mov word [rsp + 0x30], ax
cmp ax, 0x7f
ja 0x18003c08f
movzx eax, word [rbp - 0x64]
lea r8, [rsp + 0x28]
shr ax, 1
lea rdx, [rsp + 0x40]
mov word [rsp + 0x28], ax
mov rax, qword [rbp + 0x60]
movzx eax, word [rax]
sub ax, word [rbp - 0x58]
movsx ecx, ax
shl ecx, 0xd
mov dword [rsp + 0x40], ecx
mov ecx, 0xfa
call fcn.180008920
add ax, 2
lea r8, [rsp + 0x28]
mov word [rbp - 0x28], ax
lea rdx, [rsp + 0x40]
mov eax, dword [rbp - 0x68]
mov ecx, 0xfa
mov word [rsp + 0x28], ax
movsx eax, word [rbp - 0x58]
add eax, edi
mov dword [rsp + 0x40], eax
call fcn.180008920
mov r10d, dword [rsp + 0x48]
mov word [rsp + 0x28], ax
jmp 0x18003bb8d
lea edi, [rax - 1]
mov ecx, 0xfa
cwde
lea r8, [rsp + 0x20]
dec eax
mov word [rsp + 0x20], di
sar eax, 1
lea rdx, [rsp + 0x40]
add eax, dword [rbp - 0x80]
mov dword [rsp + 0x40], eax
call fcn.180008920
mov rcx, qword [rbp + 0x70]
movsx eax, word [rcx]
mov rcx, qword [rbp + 0x60]
cmp ax, word [rcx]
jg 0x18003b9c1
mov rcx, qword [rbp + 0x68]
cmp byte [rcx], 0
je 0x18003b9c1
xor ecx, ecx
mov word [rbp - 0x58], cx
mov r10d, dword [rsp + 0x48]
mov ecx, eax
movsx eax, di
imul ecx, eax
mov dword [rbp - 0x80], ecx
jmp 0x18003bb8d
mov rcx, qword [rbp + 0x60]
mov rdx, qword [rbp + 0x78]
mov word [rsp + 0x20], ax
movsx edi, ax
movzx ecx, word [rcx]
mov rax, qword [rbp + 0x70]
movzx r8d, cx
sub r8w, word [rdx]
lea rdx, [rsp + 0x40]
mov word [rsp + 0x28], r8w
lea r8, [rsp + 0x20]
movzx eax, word [rax]
sub ax, cx
movsx ecx, ax
mov eax, dword [rbp - 0x68]
dec ax
cwde
imul ecx, eax
mov eax, edi
sar eax, 1
add ecx, eax
mov dword [rsp + 0x40], ecx
mov ecx, 0xfa
call fcn.180008920
movzx r10d, word [rsp + 0x28]
add r10w, ax
mov rax, qword [rbp + 0x60]
movzx r9d, r10w
mov word [rsp + 0x28], r10w
movsx r8d, word [rax]
mov rax, qword [rbp + 0x78]
mov edx, r8d
movsx ecx, word [rax]
sub r8w, cx
movsx eax, r10w
mov r10d, dword [rsp + 0x48]
sub edx, ecx
cmp eax, edx
cmovle r9w, r8w
movsx eax, r9w
imul eax, edi
mov word [rbp - 0x30], r9w
mov dword [rbp - 0x80], eax
jmp 0x18003bb8d
movsx rax, word [rsp + 0x30]
lea r8, [0x180000000]
movzx eax, word [r8 + rax*2 + 0x525d0]
mov r8d, 0x5921
mov dword [rsp + 0x58], r8d
mov word [rbp - 0x78], ax
jmp 0x18003bba7
cmp r14d, 0x58391
je 0x18003bae7
cmp r14d, 0x62051
je 0x18003badb
cmp r14d, 0x6bd11
jne 0x18003bba7
mov eax, ebx
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor eax, eax
mov ebx, eax
mov dword [rbp - 0x38], eax
jmp 0x18003bba7
movzx eax, word [rbp - 0x78]
mov ebx, dword [rsp + 0x70]
mov qword [rbp - 0x20], r11
lea edi, [rax + rax*4]
shl edi, 2
xor eax, eax
mov dword [rsp + 0x38], edi
movzx edx, ax
mov word [rsp + 0x20], ax
nop word [rax + rax]
mov r14d, eax
mov dword [rsp + 0x68], eax
mov qword [rbp - 0x10], 0xa
nop
cmp r14d, 9
ja case.default.0x18003bb41
mov eax, r14d
lea rcx, [0x180000000]
mov ecx, dword [rcx + rax*4 + 0x3c09c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
lea ecx, [r13 - 8]
test ecx, ecx
js 0x18003bbca
shl edi, cl
mov dword [rbp - 0x80], edi
mov edi, dword [rsp + 0x38]
xor eax, eax
mov r8d, dword [rsp + 0x58]
inc r14d
sub qword [rbp - 0x10], 1
mov r9d, dword [rsp + 0x5c]
mov dword [rsp + 0x68], r14d
jne 0x18003bb20
inc dx
add r11, 4
mov word [rsp + 0x20], dx
mov qword [rbp - 0x20], r11
cmp dx, 0x20
jl 0x18003bb10
mov ebx, dword [rbp - 0x38]
mov r14d, dword [rsp + 0x40]
mov rdi, qword [rbp + 0x68]
mov r11, qword [rbp + 0x50]
mov rdx, qword [rbp - 0x40]
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x50]
mov eax, dword [rbp + 0x58]
lea eax, [rax + rax*2]
shl eax, 6
add r14d, eax
mov dword [rsp + 0x40], r14d
cmp r14d, dword [rbp - 0x14]
ja 0x18003bac5
mov eax, dword [rbp - 0x68]
jmp 0x18003b6f0
mov ecx, 8
sub ecx, r13d
sar edi, cl
jmp 0x18003bb4d
mov r8d, dword [rbp - 0x68]
dec dx
movsx r12d, dx
xor r9d, r9d
mov word [rsp + 0x68], r8w
lea rdx, [rbp - 0x70]
lea eax, [r8 - 1]
movsx ecx, ax
lea r8, [rsp + 0x68]
movzx eax, word [rbp - 0x64]
imul r12d, ecx
mov ecx, 0xc3
movsx edi, r12w
imul edi, eax
mov dword [rbp - 0x5c], r12d
inc edi
mov dword [rbp - 0x7c], edi
mov dword [rbp - 0x70], edi
call fcn.180009370
movsx ecx, word [rsp + 0x30]
mov r10d, dword [rsp + 0x48]
mov r11, qword [rbp - 0x20]
shl ecx, 0xe
sub ecx, eax
mov eax, ecx
mov dword [rbp - 0x18], ecx
cdq
xor eax, edx
sub eax, edx
mov dword [rbp - 0x70], eax
movzx edx, word [rsp + 0x20]
jmp 0x18003bb50
add dword [rbp - 0x7c], 0x40000
jmp 0x18003bb54
mov ecx, dword [rbp - 0x80]
mov eax, ecx
mov edi, dword [rsp + 0x78]
cdq
sub eax, edx
sar eax, 1
test edi, edi
jns 0x18003bc6c
neg eax
add edi, eax
mov eax, edi
mov dword [rsp + 0x78], edi
cdq
idiv ecx
mov dword [rbp - 0x50], eax
mov rax, qword [rbp + 0x68]
cmp byte [rax], 0
je 0x18003bc42
movzx edx, word [rsp + 0x20]
cmp dx, word [rbp - 0x28]
jge 0x18003bb50
movzx eax, word [rbp - 0x64]
lea edi, [rdx - 1]
imul edi, eax
lea r8, [rsp + 0x68]
mov eax, dword [rbp - 0x34]
lea rdx, [rbp - 0x50]
shl eax, 0xe
xor r9d, r9d
mov ecx, 0xc3
sub edi, eax
mov eax, 0x14
mov word [rsp + 0x68], ax
mov dword [rbp - 0x7c], edi
lea eax, [rdi + 0xa]
mov dword [rbp - 0x50], eax
call fcn.180009370
mov r10d, dword [rsp + 0x48]
mov r11, qword [rbp - 0x20]
movzx edx, word [rsp + 0x20]
mov dword [rbp - 0x50], eax
jmp 0x18003bb50
mov edi, dword [rbp - 0x7c]
test edi, edi
jle 0x18003be1b
mov ebx, 0x3fff
mov r9d, 0xad
mov r13d, 0x2000
lea r14d, [rbx + 1]
nop dword [rax]
nop word [rax + rax]
mov eax, r9d
sub eax, 0xad
je 0x18003bdde
sub eax, 1
je 0x18003bdd4
cmp eax, 1
jne 0x18003bde5
cmp r15w, r13w
jb 0x18003bd86
mov edx, 0x2b
nop dword [rax + rax]
mov eax, edx
mov ecx, esi
sub eax, 0x29
je 0x18003bd74
sub eax, 1
je 0x18003bd5f
cmp eax, 1
jne 0x18003bd79
mov r12d, 0xffff8000
sub r12w, r8w
jmp 0x18003bd79
movzx eax, r15w
mov esi, r14d
sub esi, eax
movsx eax, r12w
imul esi, eax
sar esi, 0xd
jmp 0x18003bd79
mov esi, r14d
sub esi, ecx
dec edx
cmp edx, 0x28
ja 0x18003bd40
mov dword [rbp - 0x5c], r12d
jmp 0x18003bd9d
movzx eax, r8w
movzx esi, r15w
sub ax, r14w
movsx r12d, ax
imul esi, r12d
sar esi, 0xd
movzx r8d, r10w
movzx r15d, si
mov edx, r15d
lea ecx, [r8 - 0xe]
test ecx, ecx
js 0x18003bdb4
shl edx, cl
jmp 0x18003bdbe
mov ecx, 0xe
sub cl, r10b
shr edx, cl
mov ecx, r8d
mov eax, 1
mov r8d, dword [rsp + 0x58]
shl eax, cl
add eax, edx
mov dword [r11], eax
jmp 0x18003bde5
movzx r15d, di
and r15w, bx
jmp 0x18003bde5
mov r10d, edi
sar r10d, 0xe
inc r9d
cmp r9d, 0xb0
jb 0x18003bd10
mov r13d, dword [rbp - 0x60]
mov ebx, dword [rsp + 0x70]
mov r14d, dword [rsp + 0x68]
movzx edx, word [rsp + 0x20]
mov dword [rsp + 0x48], r10d
mov dword [rbp - 0x5c], r12d
mov word [rsp + 0x60], r15w
jmp 0x18003bb50
mov edi, dword [rsp + 0x38]
xor eax, eax
mov dword [r11], eax
jmp case.default.0x18003bb41
movzx ecx, word [rbp - 0x78]
lea r8, [rsp + 0x78]
movsx edi, word [rbp - 0x30]
xor edx, edx
movsx eax, word [rsp + 0x30]
imul edi, ecx
mov ecx, dword [rsp + 0x38]
imul eax, ebx
shl edi, 6
sub edi, eax
mov eax, ecx
sar eax, 8
cmp edi, eax
jle 0x18003be69
mov ecx, 0x81
mov dword [rsp + 0x78], edi
call fcn.1800373c0
movsx r13d, ax
jmp 0x18003be7f
mov dword [rsp + 0x78], ecx
mov ecx, 0x81
call fcn.1800373c0
movsx r13d, ax
add r13d, 8
mov r10d, dword [rsp + 0x48]
mov ecx, r13d
mov r11, qword [rbp - 0x20]
movzx edx, word [rsp + 0x20]
shl edi, cl
mov dword [rsp + 0x78], edi
mov dword [rbp - 0x60], r13d
jmp 0x18003bb50
mov eax, dword [rbp - 0x50]
cmp eax, 0x9858
jle 0x18003bec5
mov edi, eax
movzx eax, word [rbp - 0x2c]
sar edi, 1
imul edi, eax
add edi, 0x1000
sar edi, 0xd
mov dword [rbp - 0x7c], edi
jmp 0x18003bb50
movzx edi, word [rbp - 0x2c]
imul edi, eax
mov eax, 0x2000
add edi, eax
sar edi, 0xe
mov dword [rbp - 0x7c], edi
jmp 0x18003bb50
mov r14d, dword [rbp - 0x48]
mov ebx, r14d
shr ebx, 8
cmp dword [rbp - 0x18], 0
mov dword [rsp + 0x70], ebx
jge 0x18003c061
mov r15d, dword [rbp - 0x24]
mov edi, 0x128
mov r12d, dword [rbp - 0x70]
mov eax, edi
sub eax, 0x126
je 0x18003bf7f
sub eax, 1
je 0x18003bf78
cmp eax, 1
jne 0x18003bf36
lea r9, [rbp - 0x48]
mov dword [rbp - 0x48], r12d
xor r8d, r8d
mov edx, 0xe6
xor ecx, ecx
call fcn.180037620
mov r9d, dword [rsp + 0x5c]
movsx r13d, ax
xor eax, eax
mov ebx, dword [rsp + 0x70]
dec edi
cmp edi, 0x125
ja 0x18003bf03
mov r12d, dword [rbp - 0x5c]
mov r10d, dword [rsp + 0x48]
mov r11, qword [rbp - 0x20]
movzx edx, word [rsp + 0x20]
mov edi, dword [rsp + 0x38]
mov dword [rbp - 0x24], r15d
movzx r15d, word [rsp + 0x60]
mov dword [rbp - 0x48], r14d
mov r14d, dword [rsp + 0x68]
mov dword [rbp - 0x60], r13d
jmp case.default.0x18003bb41
xor eax, eax
mov r15d, eax
jmp 0x18003bf38
cmp r13d, 0xf
jge 0x18003bfc7
mov ecx, 0xf
movzx eax, r9w
sub ecx, r13d
mov edx, r12d
shr edx, cl
imul edx, eax
cmp r13d, 9
jge 0x18003bfac
mov ecx, 9
sub ecx, r13d
shr r14d, cl
jmp 0x18003bfb2
lea ecx, [r13 - 9]
shr edx, cl
mov eax, 9
sub eax, r13d
cmp r13d, 9
cmovge eax, r15d
mov r15d, eax
jmp 0x18003bfd2
movzx edx, r9w
imul edx, r12d
shr edx, 6
xor eax, eax
mov dword [rsp + 0x70], eax
mov ebx, eax
cmp edx, r14d
jae 0x18003bf3c
mov r8d, r14d
mov ecx, 8
sub r8d, edx
sub ecx, r15d
shr r8d, cl
mov dword [rsp + 0x70], r8d
mov ebx, r8d
jmp 0x18003bf3c
mov r10d, dword [rbp - 0x70]
shr r10d, 0xe
mov dword [rsp + 0x48], r10d
jmp 0x18003bb54
movzx r15d, word [rbp - 0x70]
lea rdx, [0x180000000]
mov eax, 0x3fff
and r15w, ax
movzx eax, r10w
mov word [rsp + 0x60], r15w
movzx ecx, word [rdx + rax*2 + 0x525d0]
movzx eax, word [rdx + rax*2 + 0x525d2]
sub ax, cx
shl ecx, 0xe
movzx edx, ax
movzx eax, r15w
imul edx, eax
add edx, ecx
mov dword [rbp - 0x48], edx
movzx edx, word [rsp + 0x20]
jmp 0x18003bb54
mov r14d, dword [rsp + 0x68]
jmp 0x18003bb54
mov rdx, r11
mov ecx, 0x41
call fcn.180043000
jmp 0x18003bac7
mov rcx, qword [rbp - 8]
xor eax, eax
mov qword [rcx + 0xb48], rax
jmp 0x18003bac7
mov eax, 0xffffffff
jmp 0x18003bac7