Function at 0x409900
Capabilities:
Accept command line arguments
Create directory
Create process on windows
Read file on windows
Set environment variable
Write and execute a file
Write file on windows

Disassembly:
call sub.msvcrt.dll_abort
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
call fcn.00402104
xor ecx, ecx
mov r8d, 0x1000
lea rdx, [0x0041c0c0]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x409f0b
mov r8d, 0x1000
lea rdx, str._TEMP_onefile__PID___TIME_
lea rcx, [0x0041e0e0]
call fcn.00401d50
test al, al
je 0x40a388
mov edx, 1
lea rcx, [0x00401a20]
call qword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
test eax, eax
je 0x409ee6
mov rax, qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor edx, edx
lea rcx, [0x0041e0e0]
mov qword [rsp + 0x68], rax
call rax
mov rax, qword [sym.imp.KERNEL32.dll_CreateFileW]
xor r9d, r9d
mov byte [0x0041e0c0], 1
mov qword [rsp + 0x30], 0
mov r8d, 1
mov edx, 0x80000000
lea rcx, [0x0041c0c0]
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
mov qword [rsp + 0x60], rax
call rax
mov qword [0x004200e0], rax
add rax, 1
je 0x40a2fb
xor r8d, r8d
xor edx, edx
lea rcx, [0x0041c0c0]
mov rsi, qword [sym.imp.KERNEL32.dll_GetShortPathNameW]
call rsi
lea ecx, [rax + 1]
mov ebx, eax
add rcx, rcx
call sub.msvcrt.dll_malloc
mov r12, rax
test rax, rax
je 0x40a3a6
mov r8d, ebx
mov rdx, r12
lea rcx, [0x0041c0c0]
call rsi
lea rbp, [rsp + 0xa0]
test eax, eax
je 0x40a2ee
xor r8d, r8d
xor edx, edx
mov rbx, qword [sym.imp.msvcrt.dll_wcstombs_s]
mov r9, r12
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rcx, rbp
call rbx
test eax, eax
jne 0x40a2ee
mov rsi, qword [rsp + 0xa0]
mov rcx, rsi
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x40a2a9
mov r9, r12
mov r8, rsi
mov rdx, rax
mov rcx, rbp
mov qword [rsp + 0x20], 0xffffffffffffffff
call rbx
test eax, eax
jne 0x40a2e6
xor r9d, r9d
mov r8, rbp
lea rdx, str.dont_search_path
mov rcx, r13
mov dword [rsp + 0x20], 1
call qword [sym.imp.imagehlp.dll_MapAndLoad]
test eax, eax
jne 0x409f1e
mov rcx, r13
call sub.msvcrt.dll_free
mov rcx, qword [0x004200e0]
mov rbx, qword [sym.imp.KERNEL32.dll_SetFilePointer]
xor r8d, r8d
mov edx, 0xfffffff8
mov r9d, 2
call rbx
add eax, 1
je 0x40a311
xor r8d, r8d
mov r9d, 1
xor edx, edx
mov rcx, qword [0x004200e0]
call rbx
mov edx, 8
mov rcx, rbp
call fcn.00401840
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rsp + 0xa0]
mov rcx, qword [0x004200e0]
call rbx
add eax, 1
je 0x40a330
lea rcx, [rsp + 0x79]
mov edx, 3
call fcn.00401840
cmp byte [rsp + 0x79], 0x4b
je 0x409b4d
mov r8d, 0x2df
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.header_0___K
call qword [sym.imp.msvcrt.dll__assert]
cmp byte [rsp + 0x7a], 0x41
je 0x409b6e
mov r8d, 0x2e0
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.header_1___A
call qword [sym.imp.msvcrt.dll__assert]
cmp byte [rsp + 0x7b], 0x58
je 0x409b8f
mov r8d, 0x2e7
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.header_2___X
call qword [sym.imp.msvcrt.dll__assert]
mov r14, qword [sym.imp.KERNEL32.dll_ReadFile]
lea r13, [rsp + 0x80]
lea r15, [0x004200e0]
nop dword [rax]
mov r12, qword [sym.imp.msvcrt.dll__assert]
lea rbx, [0x004110c0]
lea rsi, str.static_srcOnefileBootstrap.c
mov rdi, r12
jmp 0x409bee
mov r8d, 0xeb
mov rdx, rsi
lea rcx, str.read_size__size
call rdi
movzx eax, word [rsp + 0x80]
mov word [rbx], ax
test ax, ax
je 0x409c2f
add rbx, 2
mov qword [rsp + 0x20], 0
mov rcx, qword [0x004200e0]
mov r9, rbp
mov rdx, r13
mov r8d, 2
call r14
test eax, eax
je 0x409f80
cmp dword [rsp + 0xa0], 2
jne 0x409bc8
movzx eax, word [rsp + 0x80]
mov word [rbx], ax
test ax, ax
jne 0x409bea
lea rax, [0x004110c0]
movzx edx, word [rax]
test dx, dx
je 0x40a13e
movzx eax, word [0x0041e0e0]
lea rsi, [0x0041e0e0]
lea rbx, [0x004110c0]
lea rdi, [0x0041a0c0]
nop
cmp dx, 0x5c
je 0x409fe0
movzx edx, word [rbx + 2]
add rbx, 2
test dx, dx
jne 0x409c60
xor r9d, r9d
lea rcx, [0x0041a0c0]
lea rdx, [0x0041e0e0]
mov word [0x0041a0c0], r9w
test ax, ax
jne 0x409ca9
jmp 0x409cbc
cmp rdx, r15
je 0x4098f0
add rdx, 2
mov word [rcx], ax
add rcx, 2
movzx eax, word [rdx]
test ax, ax
jne 0x409ca0
xor r8d, r8d
mov word [rcx], r8w
cmp word [0x0041a0c0], 0
je 0x40a258
mov edx, 0x1000
lea rax, [0x0041a0c0]
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x409ce0
test rdx, rdx
je 0x40a3de
mov dword [rax], 0x5c
lea rax, [0x004110c0]
mov edx, 0x1000
cmp word [0x0041a0c0], 0
movzx ecx, word [rax]
lea rax, [0x0041a0c0]
je 0x40a24a
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x409d28
test cx, cx
je 0x409d71
test rdx, rdx
je 0x40a3d9
lea r8, [0x004110c0]
jmp 0x409d59
test rdx, rdx
je 0x40a3d4
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x409d50
xor edx, edx
cmp word [0x004198c0], 0
mov word [rax], dx
je 0x40a120
mov dword [rsp + 0x28], 0
mov rax, qword [rsp + 0x60]
xor r9d, r9d
mov r8d, 2
mov qword [rsp + 0x30], 0
mov edx, 0x40000000
lea rcx, [0x0041a0c0]
mov dword [rsp + 0x20], 2
call rax
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x40a35d
mov qword [rsp + 0x20], 0
mov rcx, qword [0x004200e0]
mov r9, r13
mov rdx, rbp
mov r8d, 8
call r14
test eax, eax
je 0x40a100
cmp dword [rsp + 0x80], 8
je 0x409e11
mov r8d, 0xeb
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.read_size__size
call qword [sym.imp.msvcrt.dll__assert]
mov rsi, qword [rsp + 0xa0]
mov rdi, qword [sym.imp.KERNEL32.dll_WriteFile]
test rsi, rsi
je 0x409fc9
mov rax, qword [sym.imp.msvcrt.dll__assert]
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], rax
mov r13, rax
jmp 0x409e8f
mov eax, dword [rsp + 0xa0]
cmp rbx, rax
je 0x409e63
mov r8d, 0xeb
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.read_size__size
call r13
xor r9d, r9d
mov r8d, ebx
lea rdx, [0x004118c0]
mov rcx, r12
mov qword [rsp + 0x20], 0
call rdi
test eax, eax
je 0x409fa0
sub rsi, rbx
je 0x409fc4
cmp rsi, 0x8000
mov ebx, 0x8000
mov qword [rsp + 0x20], 0
mov rcx, qword [0x004200e0]
cmovbe rbx, rsi
mov r9, rbp
lea rdx, [0x004118c0]
mov r8d, ebx
call r14
test eax, eax
jne 0x409e40
mov r8d, 0xea
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.bool_res
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x409e40
lea rcx, str.Error__failed_to_register_signal_handler.
call fcn.004017e0
mov eax, 1
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.Error__failed_to_locate_onefile_filename.
call fcn.004017e0
mov eax, 1
jmp 0x409ef7
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x40a34f
cmp dword [rax + 0x84], 4
jbe 0x40a34f
mov ebx, dword [rax + 0xa8]
mov rcx, rbp
call qword [sym.imp.imagehlp.dll_UnMapAndLoad]
mov rcx, r13
call sub.msvcrt.dll_free
test ebx, ebx
je 0x409ab6
lea edx, [rbx - 8]
mov rcx, qword [0x004200e0]
xor r9d, r9d
xor r8d, r8d
mov rbx, qword [sym.imp.KERNEL32.dll_SetFilePointer]
call rbx
jmp 0x409ad4
mov r8d, 0xea
mov rdx, rsi
lea rcx, str.bool_res
call r12
jmp 0x409c15
mov rax, qword [rsp + 0x50]
mov r8d, 0xa2
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.bool_res
call rax
sub rsi, rbx
jne 0x409e8f
mov r13, qword [rsp + 0x58]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x409ba8
xor edx, edx
xor ecx, ecx
mov word [rbx], dx
lea rdx, [0x0041e0e0]
mov word [0x0041a0c0], cx
lea rcx, [0x0041a0c0]
test ax, ax
jne 0x40a011
jmp 0x40a024
cmp rdx, r15
je 0x4098f0
add rdx, 2
mov word [rcx], ax
add rcx, 2
movzx eax, word [rdx]
test ax, ax
jne 0x40a008
xor r12d, r12d
mov word [rcx], r12w
cmp word [rdi], 0
je 0x40a27e
mov edx, 0x1000
lea rax, [0x0041a0c0]
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x40a048
test rdx, rdx
je 0x40a3cf
mov dword [rax], 0x5c
lea rax, [0x004110c0]
cmp word [rdi], 0
movzx ecx, word [rax]
je 0x40a264
mov edx, 0x1000
lea rax, [0x0041a0c0]
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x40a088
test cx, cx
je 0x40a0d1
test rdx, rdx
je 0x40a3ca
lea r8, [0x004110c0]
jmp 0x40a0b9
test rdx, rdx
je 0x40a3c5
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x40a0b0
xor r10d, r10d
mov r11d, 0x5c
xor edx, edx
mov rcx, rdi
mov word [rax], r10w
mov rax, qword [rsp + 0x68]
mov word [rbx], r11w
call rax
movzx eax, word [rsi]
jmp 0x409c6a
mov r8d, 0xea
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.bool_res
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x409ded
mov r8d, 0x1000
lea rdx, [0x0041a0c0]
lea rcx, [0x004198c0]
call fcn.00401b70
jmp 0x409d84
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, pe_nt_image_headers64
mov rcx, rbp
mov rdi, rbp
mov r9d, eax
lea r8, [0x0040c194]
call fcn.004017c0
mov rdx, rbp
lea rcx, str.NUITKA_ONEFILE_PARENT
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
xor eax, eax
mov ecx, 0x1a
rep stosd dword [rdi], eax
mov dword [rsp + 0xa0], 0x68
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], rbp
mov rdx, rax
lea rcx, [0x004198c0]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x200
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x40a28a
mov rcx, qword [rsp + 0x88]
mov rbx, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rbx
mov rcx, qword [rsp + 0x80]
mov dword [rsp + 0x7c], 0
mov qword [0x004110a0], rcx
test rcx, rcx
je 0x40a23c
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x004110a0]
lea rdx, [rsp + 0x7c]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x40a228
mov dword [rsp + 0x7c], 1
mov rcx, qword [0x004110a0]
call rbx
mov qword [0x004110a0], 0
call fcn.004018f0
mov eax, dword [rsp + 0x7c]
jmp 0x409ef7
test cx, cx
jne 0x409d44
jmp 0x409d71
lea rax, [0x0041a0c0]
jmp 0x409cf7
lea rax, [0x0041a0c0]
mov edx, 0x1000
test cx, cx
jne 0x40a0a4
jmp 0x40a0d1
lea rax, [0x0041a0c0]
jmp 0x40a05f
mov r8d, 0x357
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.bool_res
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x40a1d2
mov r8d, 0x1f5
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.ansiPath
call qword [sym.imp.msvcrt.dll__assert]
xor edx, edx
mov r9, r12
mov rcx, rbp
mov qword [rsp + 0x20], 0xffffffffffffffff
mov r8, qword [rsp + 0xa0]
call rbx
test eax, eax
je 0x409ab6
mov rcx, r13
call sub.msvcrt.dll_free
mov rcx, r12
call sub.msvcrt.dll_free
jmp 0x409ab6
lea rcx, str.Error__failed_to_access_unpacked_executable.
call fcn.004017e0
mov eax, 1
jmp 0x409ef7
mov r8d, 0x2c8
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.res___INVALID_SET_FILE_POINTER
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x409add
mov r8d, 0x2d7
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.res___INVALID_SET_FILE_POINTER
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x409b1d
mov rcx, rbp
call qword [sym.imp.imagehlp.dll_UnMapAndLoad]
jmp 0x409aae
mov ecx, 2
call qword [fcn.00409590]
lea r8, [0x0041a0c0]
lea rdx, str.Error__failed_to_open__ls_for_writing.
mov rcx, rax
call fcn.004018c0
mov ecx, 2
call sub.msvcrt.dll_exit
lea rcx, str.Error__couldnt_runtime_expand_temporary_directory_pattern:
call sub.msvcrt.dll_puts
lea rcx, str._TEMP_onefile__PID___TIME_
call qword [sym.imp.msvcrt.dll__putws]
call sub.msvcrt.dll_abort
mov r8d, 0x1e9
lea rdx, str.static_srcOnefileBootstrap.c
lea rcx, str.shortPath
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x409a09
jmp 0x4098f0
jmp 0x4098f0
jmp 0x4098f0
jmp 0x4098f0
jmp 0x4098f0
jmp 0x4098f0