Function at 0x180042a10
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0x88
mov r10d, dword [rbp + 0x4f]
lea r8d, [rcx + 0x24]
mov r11, qword [rbp + 0x97]
mov rdi, r9
mov r14d, dword [rbp + 0x4f]
mov r9, rdx
mov r15d, dword [rbp + 0x4f]
mov edx, ecx
mov dword [rbp - 0x29], ecx
mov eax, ecx
mov dword [rbp - 0x21], r8d
lea rcx, [0x180000000]
mov dword [rbp - 0x31], r10d
cmp edx, r8d
jae 0x180042e5d
mov rax, qword [rbp - 9]
lea r13d, [rdx - 0x9d]
mov ebx, dword [rbp + 0x4f]
mov qword [rbp - 9], rax
mov rsi, qword [rbp - 9]
mov r12, qword [rbp - 9]
cmp r13d, 0x3e
ja case.default.0x180042ab5
movzx eax, byte [rcx + r13 + 0x43380]
mov ecx, dword [rcx + rax*4 + 0x43350]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
test r9, r9
jne case.0x180042ab5.11
lea r8, str.b___NULL
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
xor r9d, r9d
mov qword [rsp + 0x40], rcx
mov edx, 0xcd
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
mov dword [rbp - 0x19], ecx
call fcn.180026490
jmp 0x180042e16
mov ecx, r14d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbp - 9], rax
test rsi, rsi
je 0x180042b27
test r12, r12
je 0x180042b27
test rax, rax
jne 0x180042e16
mov edi, 0xac
nop dword [rax]
cmp edi, 0xac
je 0x180042b6a
cmp edi, 0x6ad4
jne 0x180042b78
test r12, r12
je 0x180042b4e
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [rbp - 9]
test rax, rax
je 0x180042b60
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, 0xd
jmp 0x18004333c
test rsi, rsi
je 0x180042b78
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add edi, 0x6a28
cmp edi, 0xd450
jbe 0x180042b30
mov rdi, qword [rbp + 0x67]
jmp 0x180042e16
lea ecx, [r10 - 2]
lea eax, [r14 + r14]
cmp eax, ecx
jae 0x180042e47
cmp dword [r9], r10d
jne 0x180042e47
mov ecx, r10d
mov edi, r10d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, edi
mov rsi, rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, qword [rbp + 0x67]
mov r12, rax
jmp 0x180042e16
cmp qword [rbp + 0x87], 0
jne 0x180042c29
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
lea r8, str.MaxRegCount
mov qword [rsp + 0x40], rcx
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov edx, 0xcd
lea rax, [rbp - 0x19]
mov dword [rbp - 0x19], ecx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
call fcn.180026490
mov edx, dword [rbp - 0x29]
mov r8d, dword [rbp - 0x21]
mov r10d, dword [rbp - 0x31]
mov r11, qword [rbp + 0x97]
test r11, r11
jne case.0x180042ab5.11
lea r8, str._12_15R___V
jmp 0x180042ac7
mov rax, qword [rbp + 0x77]
mov r10d, 0
mov eax, dword [rax]
test al, 7
setne r10b
shr eax, 3
add r10d, eax
mov dword [rbp - 0x31], r10d
jmp case.0x180042ab5.11
cmp qword [rbp + 0x87], 0
jne case.0x180042ab5.11
lea r8, str.a___NULL
jmp 0x180042ac7
mov rcx, qword [rbp + 0x6f]
mov edx, 1
movzx ecx, byte [rcx]
shl dl, cl
movzx ecx, byte [r9]
dec dl
shl dl, cl
mov rcx, qword [rbp + 0x87]
and dl, byte [rcx]
movzx ecx, byte [r9]
shr dl, cl
mov byte [rbp - 0x11], dl
jmp 0x180042e1e
mov r8, qword [rbp + 0x87]
mov rdx, r9
mov ecx, 0xc4
call fcn.180059ed0
xor edx, edx
mov dword [rbp - 0x11], eax
lea r8, [rbp - 0x11]
lea ecx, [rdx + 3]
call fcn.180029d80
mov dword [rbp - 0x11], eax
jmp 0x180042e16
mov rcx, qword [rbp + 0x8f]
mov edi, 0xd4
mov eax, dword [rcx]
mov dword [rbp - 0x19], eax
mov eax, edi
sub eax, 0x28
je 0x180042d23
sub eax, 0x3a
je 0x180042d44
cmp eax, 0x72
jne 0x180042d39
movsxd rax, dword [rbp - 0x19]
cmp eax, 0x1f
ja 0x180042e51
shl rax, 7
lea rcx, [0x180000000]
cmp qword [rax + rcx + 0xed600], 0
je 0x180042e51
xor ebx, ebx
xor r15d, r15d
jmp 0x180042d56
mov r8d, dword [SHChangeNotifyDeregister]
lea rcx, [rbp - 0x19]
xor edx, edx
call qword [0x1800ee6a0]
mov ebx, eax
add edi, 0x3a
cmp edi, 0x182
jb 0x180042ce4
mov r15d, ebx
test ebx, ebx
jne 0x180042e56
lea rcx, [0x180000000]
mov rax, qword [rbp + 0x8f]
mov edx, dword [rbp - 0x29]
mov r8d, dword [rbp - 0x21]
mov r10d, dword [rbp - 0x31]
movsxd rax, dword [rax]
mov rdi, qword [rbp + 0x67]
shl rax, 7
mov r14d, dword [rax + rcx + 0xed60c]
jmp case.default.0x180042ab5
cmp qword [rbp + 0x7f], 0
jne 0x180042dc9
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
lea r8, str.memory_failure
mov qword [rsp + 0x40], rcx
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov edx, 0xcd
lea rax, [rbp - 0x19]
mov dword [rbp - 0x19], ecx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
call fcn.180026490
test rdi, rdi
jne 0x180042e10
xor ecx, ecx
lea rax, [0x1800a9369]
mov qword [rsp + 0x48], rcx
lea r8, str.BlockHeight
mov qword [rsp + 0x40], rcx
xor r9d, r9d
mov qword [rsp + 0x38], rax
mov edx, 0xcd
lea rax, [rbp - 0x19]
mov dword [rbp - 0x19], ecx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
call fcn.180026490
mov dword [rdi], 0
mov r10d, dword [rbp - 0x31]
mov r8d, dword [rbp - 0x21]
mov edx, dword [rbp - 0x29]
lea rcx, [0x180000000]
mov r11, qword [rbp + 0x97]
add edx, 3
add r13d, 3
mov dword [rbp - 0x29], edx
cmp edx, r8d
jae 0x180042e67
mov r9, qword [rbp + 0x57]
jmp 0x180042a91
mov eax, 0x16
jmp 0x18004333c
mov ebx, 0xb
mov eax, ebx
jmp 0x18004333c
mov rsi, qword [rbp - 9]
mov r12, qword [rbp - 9]
jmp 0x180042e6a
mov eax, dword [rbp + 0x4f]
mov r13, qword [rbp - 9]
lea edi, [rax - 0xc]
cmp eax, edi
jbe case.0x180042ab5.3
mov ebx, dword [rbp - 0x2d]
nop dword [rax]
add eax, 0xffffff3f
cmp eax, 0xb
ja case.default.0x180042e9f
mov ecx, dword [rcx + rax*4 + 0x433c0]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
dec ebx
mov dword [rbp - 0x19], r14d
mov eax, r10d
lea r9, [rbp - 0x21]
sub eax, r14d
lea rdx, [rbp - 0x29]
add eax, ebx
mov r8, r12
mov dword [rbp - 0x2d], eax
mov ebx, r10d
mov rax, qword [rbp + 0x8f]
sub ebx, r14d
dec ebx
mov ecx, 0x84
mov dword [rbp - 0x29], ebx
mov eax, dword [rax]
mov dword [rbp - 0x21], eax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
call fcn.180056b30
mov r15d, eax
test eax, eax
jne 0x1800432ce
xor edx, edx
test r14d, r14d
je 0x180042fd1
cmp r14d, 0x40
jb 0x180042f9f
lea eax, [r14 - 1]
lea r8, [rax + r13]
add rax, r12
cmp r13, rax
ja 0x180042f21
cmp r8, r12
jae 0x180042f9f
mov r9d, r14d
and r9d, 0xffffffc0
mov r8d, 0x20
nop
movdqu xmm0, xmmword [rdx + r13]
lea eax, [r8 - 0x10]
movdqu xmm1, xmmword [rdx + r12]
pxor xmm1, xmm0
movdqu xmmword [rdx + r13], xmm1
add edx, 0x40
movdqu xmm0, xmmword [rax + r13]
movdqu xmm1, xmmword [rax + r12]
pxor xmm1, xmm0
movdqu xmmword [rax + r13], xmm1
mov eax, r8d
movdqu xmm0, xmmword [rax + r13]
movdqu xmm1, xmmword [rax + r12]
pxor xmm1, xmm0
movdqu xmmword [rax + r13], xmm1
lea eax, [r8 + 0x10]
add r8d, 0x40
movdqu xmm0, xmmword [rax + r13]
movdqu xmm1, xmmword [rax + r12]
pxor xmm1, xmm0
movdqu xmmword [rax + r13], xmm1
cmp edx, r9d
jb 0x180042f30
cmp edx, r14d
jae 0x180042fd1
mov ecx, edx
mov r8, r12
add rcx, r13
sub r8, r13
mov eax, r14d
sub eax, edx
mov edx, eax
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x180042fc0
mov rax, qword [rbp + 0x8f]
lea r9, [rbp - 0x21]
mov r8, r12
mov dword [rbp - 0x19], ebx
lea rdx, [rbp - 0x29]
mov dword [rbp - 0x29], r14d
mov ecx, 0x84
mov eax, dword [rax]
mov dword [rbp - 0x21], eax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r13
call fcn.180056b30
mov r10d, dword [rbp - 0x31]
mov r15d, eax
test eax, eax
jne 0x1800432d2
mov ebx, dword [rbp - 0x2d]
jmp case.default.0x180042e9f
mov rax, qword [rbp + 0x67]
xor r15d, r15d
mov dword [rax], 1
jmp 0x1800432d2
mov r9d, r10d
xor edx, edx
sub r9d, r14d
sub r9d, 1
je case.default.0x180042e9f
cmp r9d, 0x40
jb 0x1800430de
lea eax, [r9 - 1]
lea r8, [rax + rsi]
add rax, r12
cmp rsi, rax
ja 0x180043061
cmp r8, r12
jae 0x1800430de
mov r10d, r9d
and r10d, 0xffffffc0
mov r8d, 0x20
nop
movdqu xmm0, xmmword [rdx + rsi]
lea eax, [r8 - 0x10]
movdqu xmm1, xmmword [rdx + r12]
pxor xmm1, xmm0
movdqu xmmword [rdx + rsi], xmm1
add edx, 0x40
movdqu xmm0, xmmword [rax + rsi]
movdqu xmm1, xmmword [rax + r12]
pxor xmm1, xmm0
movdqu xmmword [rax + rsi], xmm1
mov eax, r8d
movdqu xmm0, xmmword [rax + rsi]
movdqu xmm1, xmmword [rax + r12]
pxor xmm1, xmm0
movdqu xmmword [rax + rsi], xmm1
lea eax, [r8 + 0x10]
add r8d, 0x40
movdqu xmm0, xmmword [rax + rsi]
movdqu xmm1, xmmword [rax + r12]
pxor xmm1, xmm0
movdqu xmmword [rax + rsi], xmm1
cmp edx, r10d
jb 0x180043070
mov ebx, dword [rbp - 0x2d]
mov r10d, dword [rbp - 0x31]
cmp edx, r9d
jae case.default.0x180042e9f
mov ecx, edx
mov r8, r12
add rcx, rsi
sub r8, rsi
sub r9d, edx
mov edx, r9d
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x180043100
mov ebx, dword [rbp - 0x2d]
jmp case.default.0x180042e9f
mov eax, r10d
sub eax, r14d
dec eax
cmp ebx, eax
je 0x180043155
mov eax, ebx
cmp byte [rax + rsi], 1
jne 0x180043155
mov rcx, qword [rbp + 0x7f]
inc ebx
mov eax, r10d
mov dword [rbp - 0x2d], ebx
sub eax, ebx
sub eax, r14d
dec eax
cmp eax, dword [rcx]
mov dword [rcx], eax
jbe case.default.0x180042e9f
mov r15d, 6
jmp 0x1800432d2
mov r15d, 7
jmp 0x1800432d2
mov r8d, r10d
mov edx, ebx
sub r8d, ebx
add rdx, rsi
sub r8d, r14d
mov rcx, r11
dec r8d
call sub.VCRUNTIME140.dll_memcpy
mov r10d, dword [rbp - 0x31]
jmp case.default.0x180042e9f
mov rax, qword [rbp + 0x87]
cmp byte [rax], 0
je 0x180043196
xor r15d, r15d
jmp 0x1800432d2
mov ebx, 1
mov r8d, r14d
lea rdx, [rax + 1]
mov dword [rbp - 0x2d], ebx
mov rcx, r13
call sub.VCRUNTIME140.dll_memcpy
mov r10d, dword [rbp - 0x31]
jmp case.default.0x180042e9f
mov eax, r14d
lea r8, [rbp - 9]
mov rdx, r13
mov qword [rbp - 9], rax
mov ecx, 0x127
call fcn.18005f5d0
mov eax, dword [rbp - 0x31]
lea r8, [rbp - 9]
mov rdx, r12
mov qword [rbp - 9], rax
mov ecx, 0x127
call fcn.18005f5d0
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r10d, dword [rbp - 0x31]
mov ebx, dword [rbp - 0x2d]
jmp case.default.0x180042e9f
add ebx, r14d
mov r8d, r10d
sub r8d, r14d
mov edx, ebx
add rdx, qword [rbp + 0x87]
dec r8d
mov rcx, rsi
mov dword [rbp - 0x2d], ebx
call sub.VCRUNTIME140.dll_memcpy
mov r10d, dword [rbp - 0x31]
mov ebx, dword [rbp - 0x2d]
jmp case.default.0x180042e9f
mov rcx, qword [rbp + 0x6f]
lea r8, [rbp - 0x21]
mov r9d, 0x76
mov rdx, r13
test rcx, rcx
je 0x180043256
mov rax, qword [rbp + 0x5f]
mov qword [rsp + 0x28], rcx
mov eax, dword [rax]
mov dword [rbp - 0x19], eax
jmp 0x180043262
mov dword [rbp - 0x19], 0
mov qword [rsp + 0x28], rsi
mov rax, qword [rbp + 0x8f]
lea rcx, [rbp - 0x2d]
mov eax, dword [rax]
mov dword [rbp - 0x21], eax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x20], rax
call fcn.180044c80
mov r15d, eax
test eax, eax
jne 0x1800432ce
mov r8d, r14d
mov rdx, rsi
mov rcx, r13
call sub.VCRUNTIME140.dll_memcmp
mov r10d, dword [rbp - 0x31]
test eax, eax
je 0x1800432a2
xor r15d, r15d
jmp 0x1800432d2
mov edx, r10d
mov ebx, r14d
sub edx, r14d
mov dword [rbp - 0x2d], ebx
dec edx
cmp r14d, edx
jae case.default.0x180042e9f
mov ecx, r14d
mov eax, ecx
cmp byte [rax + rsi], 0
jne case.default.0x180042e9f
lea ebx, [rcx + 1]
mov dword [rbp - 0x2d], ebx
mov ecx, ebx
cmp ebx, edx
jb 0x1800432b8
jmp case.default.0x180042e9f
mov r10d, dword [rbp - 0x31]
mov eax, r10d
lea r8, [rbp - 9]
mov rdx, rsi
mov qword [rbp - 9], rax
mov ecx, 0x127
mov dword [rbp + 0x4f], 0xc3
call fcn.18005f5d0
mov r10d, dword [rbp - 0x31]
mov ebx, dword [rbp - 0x2d]
jmp case.default.0x180042e9f
mov ebx, r10d
jmp 0x180043309
mov eax, r10d
dec ebx
sub eax, r14d
add ebx, eax
mov dword [rbp - 0x2d], ebx
mov eax, dword [rbp + 0x4f]
dec eax
mov dword [rbp + 0x4f], eax
cmp eax, edi
jbe case.0x180042ab5.3
mov r11, qword [rbp + 0x97]
lea rcx, [0x180000000]
jmp 0x180042e80
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, r15d
jmp 0x18004333c
mov eax, dword [rbp - 0x11]
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret