Function at 0x140018940
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rbp
push rsi
sub rsp, 0x20
movsxd rbp, r8d
mov rsi, rdx
mov rbx, rcx
cmp ebp, 0x38
jg 0x140018e01
mov qword [rsp + 0x30], rdi
mov rcx, rbp
mov rdi, rbp
call fcn.140073268
mov r10, rax
test ebp, ebp
jle 0x140018990
mov rdx, rax
sub rsi, rax
nop
movzx ecx, byte [rsi + rdx]
mov byte [rdx], cl
lea rdx, [rdx + 1]
sub rdi, 1
jne 0x140018980
xor edi, edi
lea r11, [0x140093008]
mov r9d, edi
lea rsi, [0x140093050]
nop dword [rax]
nop word [rax + rax]
mov eax, r9d
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 - 8], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 - 4], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
add r8d, ecx
shl r8d, 8
lea eax, [r9 + 3]
cdq
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 4], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 8], r8d
idiv ebp
mov eax, edx
mov r9d, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
shl r8d, 8
cdq
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 0xc], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 0x10], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
add r8d, ecx
xor dword [r11 + 0x14], r8d
lea eax, [r9 + 4]
cdq
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 0x18], r8d
add r11, 0x24
idiv ebp
mov r9d, edx
cmp r11, rsi
jl 0x1400189b0
mov qword [rbx + 4], rdi
lea rsi, [0x140093048]
lea rdi, section..data
mov rcx, rbx
call fcn.140018e20
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x140018d14
lea rdi, [0x140093430]
lea rsi, [0x140093830]
nop
mov rcx, rbx
call fcn.140018e20
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x140018d40
lea rdi, [0x140093830]
lea rsi, [0x140093c30]
nop word [rax + rax]
mov rcx, rbx
call fcn.140018e20
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x140018d70
lea rdi, [0x140093c30]
lea rsi, [0x140094030]
nop word [rax + rax]
mov rcx, rbx
call fcn.140018e20
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x140018da0
lea rdi, [0x140094030]
lea rsi, [0x140094430]
nop word [rax + rax]
mov rcx, rbx
call fcn.140018e20
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x140018dd0
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rsi
ret
lea rdx, [0x14008f320]
mov dword [rsp + 0x40], Ordinal_60
lea rcx, [rsp + 0x40]
call sub.VCRUNTIME140.dll__CxxThrowException
int3