Function at 0x140016d30
Capabilities:
Query environment variable
Resume thread
Terminate process

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x720
mov rsi, r9
mov rdi, r8
mov ebx, edx
mov r14d, ecx
mov qword [rsp + 0x58], 0
lea rcx, str.WINDIR
lea rdx, [rsp + 0xf0]
mov r8d, 0x104
call sub.KERNEL32.dll_GetEnvironmentVariableW
mov ebp, eax
lea eax, [rbx - 0x1001]
cmp eax, 0xffffefff
ja 0x140016d89
mov ecx, 0x57
call sub.KERNEL32.dll_SetLastError
jmp 0x140016fc3
lea rcx, [rsp + 0x58]
mov edx, r14d
mov r8d, ebx
mov r9, rdi
call fcn.140016a20
xor edi, edi
test eax, eax
je 0x140016fc5
add ebp, 0xfffffefc
cmp ebp, 0xfffffefd
jb 0x140016fc5
xor eax, eax
nop word [rax + rax]
cmp word [rsp + rax*2 + 0xf0], 0
je 0x140016e08
cmp word [rsp + rax*2 + 0xf2], 0
je 0x140016e0f
cmp word [rsp + rax*2 + 0xf4], 0
je 0x140016e16
cmp word [rsp + rax*2 + 0xf6], 0
je 0x140016e1d
cmp word [rsp + rax*2 + 0xf8], 0
je 0x140016e24
add rax, 5
cmp rax, 0x104
jne 0x140016dc0
jmp 0x140016fc3
mov ecx, 0x104
jmp 0x140016e29
mov ecx, 0x103
jmp 0x140016e29
mov ecx, 0x102
jmp 0x140016e29
mov ecx, 0x101
jmp 0x140016e29
mov ecx, 0x100
sub rcx, rax
mov edx, 0x104
sub rdx, rcx
lea rax, [rsp + rdx*2]
add rax, 0xf2
mov word [rsp + rdx*2 + 0xf0], 0x5c
cmp rcx, 1
je 0x140016fbd
mov word [rax], 0x73
add rax, 2
cmp rcx, 2
je 0x140016fbd
mov word [rax], 0x79
add rax, 2
cmp rcx, 3
je 0x140016fbd
mov word [rax], 0x73
add rax, 2
cmp rcx, 4
je 0x140016fbd
mov word [rax], 0x77
add rax, 2
cmp rcx, 5
je 0x140016fbd
mov word [rax], 0x6f
add rax, 2
cmp rcx, 6
je 0x140016fbd
mov word [rax], 0x77
add rax, 2
cmp rcx, 7
je 0x140016fbd
mov word [rax], 0x36
add rax, 2
cmp rcx, 8
je 0x140016fbd
mov word [rax], 0x34
add rax, 2
cmp rcx, 9
je 0x140016fbd
mov word [rax], 0x5c
add rax, 2
cmp rcx, 0xa
je 0x140016fbd
mov word [rax], 0x72
add rax, 2
cmp rcx, 0xb
je 0x140016fbd
mov word [rax], 0x75
add rax, 2
cmp rcx, 0xc
je 0x140016fbd
mov word [rax], 0x6e
add rax, 2
cmp rcx, 0xd
je 0x140016fbd
mov word [rax], 0x64
add rax, 2
cmp rcx, 0xe
je 0x140016fbd
mov word [rax], 0x6c
add rax, 2
cmp rcx, 0xf
je 0x140016fbd
mov word [rax], 0x6c
add rax, 2
cmp rcx, 0x10
je 0x140016fbd
mov word [rax], 0x33
add rax, 2
cmp rcx, 0x11
je 0x140016fbd
mov word [rax], 0x32
add rax, 2
cmp rcx, 0x12
je 0x140016fbd
mov word [rax], 0x2e
add rax, 2
cmp rcx, 0x13
je 0x140016fbd
mov word [rax], 0x65
add rax, 2
cmp rcx, 0x14
je 0x140016fbd
mov word [rax], pe_nt_image_headers64
add rax, 2
cmp rcx, 0x15
je 0x140016fbd
mov word [rax], 0x65
add rax, 2
cmp rcx, 0x16
jne 0x140016fe4
mov word [rax - 2], 0
xor edi, edi
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140016fd4
call fcn.140031c88
mov eax, edi
add rsp, 0x720
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov word [rax], 0
mov r8, qword [rsp + 0x58]
add r8, 0xc
lea rax, [rsp + 0x300]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0x104
xor edi, edi
xor ecx, ecx
xor edx, edx
mov r9d, 0xffffffff
call sub.KERNEL32.dll_MultiByteToWideChar
add eax, 0xfffffefc
cmp eax, 0xfffffefd
jb 0x140016fc5
lea r8, str.rundll32.exe___s__1
lea rcx, [rsp + 0x510]
lea r9, [rsp + 0x300]
mov edx, 0x104
call fcn.1400176d0
test eax, eax
js 0x140016fc5
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0xe0], 0
mov dword [rsp + 0x80], 0x68
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x40], rax
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0
xor edi, edi
lea rcx, [rsp + 0xf0]
lea rdx, [rsp + 0x510]
xor r8d, r8d
xor r9d, r9d
call rsi
test eax, eax
je 0x140016fc5
mov r8, qword [rsp + 0x58]
mov r9d, dword [r8]
mov rcx, qword [rsp + 0x60]
lea rdx, [0x140034c58]
call fcn.140016060
test eax, eax
je 0x140017164
mov rcx, qword [rsp + 0x68]
call sub.KERNEL32.dll_ResumeThread
mov rcx, qword [rsp + 0x60]
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov dword [rsp + 0x54], 0x1f4
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0x54]
call sub.KERNEL32.dll_GetExitCodeProcess
mov rcx, qword [rsp + 0x60]
call sub.KERNEL32.dll_CloseHandle
mov rcx, qword [rsp + 0x68]
call sub.KERNEL32.dll_CloseHandle
xor edi, edi
cmp dword [rsp + 0x54], 0
sete dil
jmp 0x140016fc5
mov rcx, qword [rsp + 0x60]
mov edx, 0xffffffff
call sub.KERNEL32.dll_TerminateProcess
mov rcx, qword [rsp + 0x60]
call sub.KERNEL32.dll_CloseHandle
mov rcx, qword [rsp + 0x68]
call sub.KERNEL32.dll_CloseHandle
jmp 0x140016fc5