Function at 0x140058c30
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rdi
push r14
lea rbp, [rsp - 0xf50]
mov eax, 0x1050
call fcn.14002f320
sub rsp, rax
mov r14, r8
mov rdi, rdx
test rdx, rdx
je 0x140058ccb
lea rcx, [0x140215a10]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x14021ad90]
test rbx, rbx
je 0x140058cbe
mov rdx, rdi
mov rcx, rbx
call fcn.14003e940
test eax, eax
jne 0x140058cb2
mov edx, dword [rbx + 0x8b0]
cmp edx, 1
jb 0x140058ca5
lea rcx, [rbx + 0x8a8]
mov rax, qword [rcx]
test rax, rax
je 0x140058ca5
cmp word [rax], 0
je 0x140058ca5
xor al, al
jmp 0x140058cae
mov al, 1
lea rcx, [rbx + 0x8a8]
test al, al
je 0x140058ce1
mov rbx, qword [rbx + 0x18f8]
test rbx, rbx
jne 0x140058c72
lea rcx, [0x140215a10]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
mov rbx, qword [rsp + 0x1080]
add rsp, 0x1050
pop r14
pop rdi
pop rbp
ret
lea rax, [rsp + 0x48]
mov qword [rsp + 0x1070], rsi
mov qword [rsp + 0x38], rax
lea rdi, [rsp + 0x48]
lea rax, [0x1401b7660]
mov qword [rsp + 0x1078], r15
xor r15d, r15d
mov qword [rsp + 0x30], rax
mov eax, 0x7ff
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x44], 0x800
mov word [rsp + 0x48], r15w
cmp byte [rbx + 0x80], r15b
je 0x140058d76
mov r9, qword [rcx]
cmp edx, 0x800
mov rsi, r9
cmovae edx, eax
lea eax, [rdx + rdx]
mov ecx, eax
shr rcx, 2
rep movsd dword [rdi], dword [rsi]
mov ecx, eax
mov r8d, eax
and ecx, 3
je 0x140058d66
and r8, 0xfffffffffffffffc
lea rdi, [rsp + 0x48]
add rdi, r8
lea rsi, [r8 + r9]
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x38]
mov dword [rsp + 0x40], edx
mov word [rax + rdx*2], r15w
jmp 0x140058dc8
mov r8d, dword [rbx + 0x10c8]
cmp r8d, 0x800
mov r9, qword [rbx + 0x10c0]
cmovae r8d, eax
mov rsi, r9
lea eax, [r8 + r8]
mov ecx, eax
shr rcx, 2
rep movsd dword [rdi], dword [rsi]
mov ecx, eax
mov edx, eax
and ecx, 3
je 0x140058db9
and rdx, 0xfffffffffffffffc
lea rdi, [rsp + 0x48]
add rdi, rdx
lea rsi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x38]
mov dword [rsp + 0x40], r8d
mov word [rax + r8*2], r15w
mov byte [rbx + 0x80], r15b
test r14, r14
je 0x140058ebc
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140058e0a
mov edi, dword [rsp + 0x40]
test edi, edi
je 0x140058e0e
lea rdx, [0x1401b76ac]
call fcn.140030c6c
mov rcx, qword [rsp + 0x38]
test rax, rax
je 0x140058e0a
sub rax, rcx
sar rax, 1
test eax, eax
jns 0x140058e50
mov edi, dword [rsp + 0x40]
test rcx, rcx
je 0x140058ebc
lea eax, [rdi + 0xc]
cmp eax, dword [rsp + 0x44]
jae 0x140058e54
mov eax, edi
lea rsi, str._firstfalse
lea rdi, [rcx + rax*2]
mov ecx, 6
rep movsd dword [rdi], dword [rsi]
mov eax, dword [rsp + 0x40]
add eax, 0xc
mov ecx, eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x38]
mov word [rax + rcx*2], r15w
mov rcx, qword [rsp + 0x38]
mov edi, dword [rsp + 0x40]
test rcx, rcx
je 0x140058ebc
mov rdx, 0xffffffffffffffff
inc rdx
cmp word [r14 + rdx*2], r15w
jne 0x140058e60
test edx, edx
je 0x140058ebc
lea eax, [rdx + rdi]
cmp eax, dword [rsp + 0x44]
jae 0x140058ebc
mov eax, edi
lea r8d, [rdx + rdx]
mov rsi, r14
lea r9, [rcx + rax*2]
mov ecx, r8d
shr rcx, 2
mov rdi, r9
rep movsd dword [rdi], dword [rsi]
mov ecx, r8d
and ecx, 3
je 0x140058ea6
and r8, 0xfffffffffffffffc
lea rsi, [r8 + r14]
lea rdi, [r8 + r9]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0x40]
add eax, edx
mov dword [rsp + 0x40], eax
mov edx, eax
mov rax, qword [rsp + 0x38]
mov word [rax + rdx*2], r15w
lea rcx, [0x140215a10]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r8, qword [rsp + 0x38]
lea rdx, str.open
xor r9d, r9d
mov dword [rsp + 0x28], 1
xor ecx, ecx
mov qword [rsp + 0x20], r15
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov r15, qword [rsp + 0x1078]
mov al, 1
mov rsi, qword [rsp + 0x1070]
jmp 0x140058ccd