Function at 0x180014590
Capabilities:
Accept command line arguments

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x4c8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x430], xmm6
mov qword [rbp + 0x428], 0xfffffffffffffffe
mov qword [rbp + 0x3b0], rcx
call qword [sym.imp.kernel32.dll_GetCommandLineW]
mov qword [rbp + 0x3e8], 8
xorps xmm0, xmm0
movups xmmword [rbp + 0x3f0], xmm0
test rax, rax
je 0x180014a75
mov rdi, rax
movzx esi, word [rax]
test si, si
je 0x180014a75
mov qword [rbp + 0x3d0], 2
movups xmmword [rbp + 0x3d8], xmm0
mov eax, 2
xor r8d, r8d
lea rbx, [rbp + 0x3d0]
xor r14d, r14d
test si, si
jne 0x180014647
jmp 0x1800146a4
mov word [rax + r8*2], si
inc r8
mov qword [rbp + 0x3e0], r8
movzx esi, word [rdi]
test si, si
je 0x1800146a4
add rdi, 2
cmp si, 9
je 0x180014670
movzx ecx, si
cmp ecx, 0x20
je 0x180014670
cmp ecx, 0x22
jne 0x180014676
not r14b
and r14b, 1
movzx esi, word [rdi]
test si, si
jne 0x180014647
jmp 0x1800146a4
test r14b, 1
je 0x1800146a4
cmp r8, qword [rbp + 0x3d8]
jne 0x180014630
mov rcx, rbx
mov rdx, r8
call fcn.18000fe00
mov rax, qword [rbp + 0x3d0]
mov r8, qword [rbp + 0x3e0]
jmp 0x180014630
add rdi, 2
movzx eax, word [rdi]
cmp eax, 0x20
je 0x1800146a0
cmp eax, 9
je 0x1800146a0
mov rsi, qword [rbp + 0x3d0]
lea rcx, [rbp - 0x60]
mov rdx, rsi
call fcn.180010f90
mov qword [rbp + 0x420], rsi
lea rcx, [rbp + 0x3e8]
xor edx, edx
call fcn.180015110
mov rax, qword [rbp + 0x3e8]
mov rcx, qword [rbp + 0x3f8]
mov rdx, rcx
shl rdx, 5
movups xmm0, xmmword [rbp - 0x60]
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rax + rdx + 0x10], xmm1
movups xmmword [rax + rdx], xmm0
inc rcx
mov qword [rbp + 0x3f8], rcx
mov qword [rbp + 0x400], 2
xorps xmm0, xmm0
movups xmmword [rbp + 0x408], xmm0
mov r13d, 2
xor r8d, r8d
lea r14, [rbp - 0x60]
lea r12, [rbp + 0x400]
movaps xmm6, xmmword [str._]
xor esi, esi
jmp 0x180014750
test sil, sil
mov sil, 1
jne 0x1800148fb
nop dword [rax]
movzx r15d, word [rdi]
test r15d, r15d
je 0x180014b91
mov rbx, rdi
add rdi, 2
cmp r15d, 0x21
jg 0x180014820
cmp r15d, 9
je 0x18001477e
cmp r15d, 0x20
jne 0x180014890
test sil, sil
jne 0x180014890
mov r13, qword [rbp + 0x400]
mov rcx, r14
mov rdx, r13
call fcn.180010f90
mov rdx, qword [rbp + 0x3f8]
cmp rdx, qword [rbp + 0x3f0]
jne 0x1800147bc
lea rcx, [rbp + 0x3e8]
call fcn.180015110
mov rdx, qword [rbp + 0x3f8]
mov rax, qword [rbp + 0x3e8]
mov rcx, rdx
shl rcx, 5
movups xmm0, xmmword [rbp - 0x60]
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
inc rdx
mov qword [rbp + 0x3f8], rdx
mov qword [rbp + 0x410], 0
jmp 0x180014804
add rdi, 2
movzx eax, word [rdi]
cmp eax, 0x20
je 0x180014800
cmp eax, 9
je 0x180014800
xor r8d, r8d
jmp 0x180014750
cmp r15d, 0x22
je 0x18001473d
cmp r15d, 0x5c
jne 0x180014890
movzx eax, word [rdi]
xor r15d, r15d
cmp ax, 0x5c
jne 0x180014853
nop dword [rax]
add rdi, 2
movzx eax, word [rbx + r15*2 + 4]
inc r15
cmp ax, 0x5c
je 0x180014840
inc r15
cmp ax, 0x22
jne 0x1800148c7
mov rbx, r15
shr rbx, 1
mov rax, qword [rbp + 0x408]
sub rax, r8
cmp rax, rbx
jae 0x180014916
mov rcx, r12
mov rdx, r8
mov r8, rbx
call fcn.180029200
mov r8, qword [rbp + 0x410]
jmp 0x18001491c
cmp r8, qword [rbp + 0x408]
jne 0x1800148ab
mov rcx, r12
mov rdx, r8
call fcn.18000fe00
mov r8, qword [rbp + 0x410]
mov r13, qword [rbp + 0x400]
mov word [r13 + r8*2], r15w
inc r8
mov qword [rbp + 0x410], r8
jmp 0x180014750
mov rax, qword [rbp + 0x408]
sub rax, r8
cmp rax, r15
jae 0x1800149c1
mov rcx, r12
mov rdx, r8
mov r8, r15
call fcn.180029200
mov r13, qword [rbp + 0x400]
mov r8, qword [rbp + 0x410]
jmp 0x1800149c6
movzx eax, word [rdi]
cmp eax, 0x22
je 0x180014a2c
xor esi, esi
test eax, eax
jne 0x180014750
jmp 0x180014d31
cmp r15, 2
jb 0x180014970
mov r13, qword [rbp + 0x400]
cmp r15, 0x20
jb 0x180014960
mov rax, rbx
and rax, 0xfffffffffffffff0
lea rcx, [r8*2 + 0x10]
add rcx, r13
add r8, rax
xor edx, edx
movups xmmword [rcx + rdx*2 - 0x10], xmm6
movups xmmword [rcx + rdx*2], xmm6
add rdx, 0x10
cmp rax, rdx
jne 0x180014940
cmp rbx, rax
je 0x180014970
and ebx, 0xf
nop word [rax + rax]
mov word [r13 + r8*2], 0x5c
inc r8
dec rbx
jne 0x180014960
mov qword [rbp + 0x410], r8
test r15b, 1
je 0x180014750
xor ebx, ebx
cmp word [rdi], 0
setne r15b
cmp r8, qword [rbp + 0x408]
jne 0x1800149a6
mov rcx, r12
mov rdx, r8
call fcn.18000fe00
mov r8, qword [rbp + 0x410]
mov bl, r15b
lea rdi, [rdi + rbx*2]
mov r13, qword [rbp + 0x400]
mov word [r13 + r8*2], 0x22
jmp 0x1800148b8
test r15, r15
je 0x180014a20
cmp r15, 0x10
jb 0x180014a10
mov rax, r15
and rax, 0xfffffffffffffff0
lea rcx, [r8*2 + 0x10]
add rcx, r13
add r8, rax
xor edx, edx
nop word cs:[rax + rax]
movups xmmword [rcx + rdx*2 - 0x10], xmm6
movups xmmword [rcx + rdx*2], xmm6
add rdx, 0x10
cmp rax, rdx
jne 0x1800149f0
cmp r15, rax
je 0x180014a20
and r15d, 0xf
nop dword [rax + rax]
mov word [r13 + r8*2], 0x5c
inc r8
dec r15
jne 0x180014a10
mov qword [rbp + 0x410], r8
jmp 0x180014750
cmp r8, qword [rbp + 0x408]
jne 0x180014a47
mov rcx, r12
mov rdx, r8
call fcn.18000fe00
mov r8, qword [rbp + 0x410]
mov r13, qword [rbp + 0x400]
mov word [r13 + r8*2], 0x22
inc r8
mov qword [rbp + 0x410], r8
cmp word [rbx + 2], 0
lea rax, [rbx + 4]
cmovne rdi, rax
mov sil, 1
jmp 0x180014750
mov qword [rbp + 0x3d0], 2
movups xmmword [rbp + 0x3d8], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x420], rax
xor edi, edi
xor ebx, ebx
xor r14d, r14d
cmp r8, 0x201
jae 0x180014ad0
jmp 0x180014abf
jae 0x180014bcb
cmp r8, 0x201
jae 0x180014ad0
mov r15d, 0x200
lea r12, [rbp - 0x60]
mov r13, r8
jmp 0x180014b28
sub r8, r14
sub rbx, r14
cmp rbx, r8
jae 0x180014aff
lea rcx, [rbp + 0x3d0]
mov rdx, r14
call fcn.180029200
mov rax, qword [rbp + 0x3d0]
mov qword [rbp + 0x420], rax
mov rdi, qword [rbp + 0x3d8]
mov eax, 0xffffffff
cmp rdi, rax
mov r14d, 0xffffffff
cmovb r14, rdi
mov qword [rbp + 0x3e0], r14
mov rbx, rdi
mov r15, r14
mov r12, qword [rbp + 0x420]
mov r13, r14
xor ecx, ecx
call qword [sym.imp.kernel32.dll_SetLastError]
xor ecx, ecx
mov rdx, r12
mov r8d, r13d
call qword [sym.imp.kernel32.dll_GetModuleFileNameW]
mov esi, eax
test eax, eax
jne 0x180014b52
call qword [sym.imp.kernel32.dll_GetLastError]
test eax, eax
jne 0x180014d11
mov r8d, esi
cmp r13, r8
jne 0x180014ab0
call qword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x7a
jne 0x180014e3d
add r13, r13
mov eax, 0xffffffff
cmp r13, rax
cmovae r13, rax
mov r8, r13
cmp r8, 0x201
jb 0x180014abf
jmp 0x180014ad0
test r8, r8
jne 0x180014d31
test sil, sil
jne 0x180014d31
mov rsi, qword [rbp + 0x3e8]
mov rdi, qword [rbp + 0x3f8]
mov rbx, qword [rbp + 0x3f0]
cmp qword [rbp + 0x408], 0
jne 0x180014d9a
jmp 0x180014db0
cmp r15, r8
jb 0x180014e57
lea rcx, [rbp + 0x400]
mov rdx, r12
call fcn.180010f90
mov rsi, qword [rbp + 0x400]
movups xmm0, xmmword [rbp + 0x408]
movaps xmmword [rbp + 0x3a0], xmm0
movzx ebx, byte [rbp + 0x418]
mov eax, dword [rbp + 0x419]
mov dword [rbp + 0x3c8], eax
mov eax, dword [rbp + 0x41c]
mov dword [rbp + 0x3cb], eax
test rdi, rdi
je 0x180014c32
mov rcx, qword [0x18003bb38]
xor edx, edx
mov r8, qword [rbp + 0x420]
call qword [sym.imp.kernel32.dll_HeapFree]
cmp bl, 2
jne 0x180014caa
mov qword [rbp - 0x60], 1
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
mov byte [rbp - 0x48], 1
mov eax, esi
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x180014cce
test rax, rax
je 0x180014cce
lea rax, [rsi - 1]
mov qword [rbp + 0x420], rax
mov rcx, qword [rsi - 1]
mov rax, qword [rsi + 7]
mov qword [rbp + 0x3c0], rcx
mov qword [rbp + 0x3b8], rax
call qword [rax]
mov rax, qword [rbp + 0x3b8]
cmp qword [rax + 8], 0
je 0x180014e22
cmp qword [rax + 0x10], 0x11
jae 0x180014e08
mov r8, qword [rbp + 0x3c0]
jmp 0x180014e13
movaps xmm0, xmmword [rbp + 0x3a0]
movups xmmword [rbp - 0x58], xmm0
mov eax, dword [rbp + 0x3c8]
mov ecx, dword [rbp + 0x3cb]
mov dword [rbp - 0x47], eax
mov dword [rbp - 0x44], ecx
mov qword [rbp - 0x60], rsi
mov byte [rbp - 0x48], bl
lea rcx, [rbp + 0x3e8]
xor edx, edx
call fcn.180015110
mov rsi, qword [rbp + 0x3e8]
mov rdi, qword [rbp + 0x3f8]
mov rax, rdi
shl rax, 5
movups xmm0, xmmword [rbp - 0x60]
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rsi + rax + 0x10], xmm1
movups xmmword [rsi + rax], xmm0
inc rdi
mov rbx, qword [rbp + 0x3f0]
jmp 0x180014dd0
call qword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
shl rsi, 0x20
or rsi, 2
mov bl, 2
test rdi, rdi
jne 0x180014c1c
jmp 0x180014c32
mov rdx, qword [rbp + 0x400]
lea rcx, [rbp - 0x60]
call fcn.180010f90
mov rdi, qword [rbp + 0x3f8]
cmp rdi, qword [rbp + 0x3f0]
jne 0x180014d67
lea rcx, [rbp + 0x3e8]
mov rdx, rdi
call fcn.180015110
mov rdi, qword [rbp + 0x3f8]
mov rsi, qword [rbp + 0x3e8]
mov rax, rdi
shl rax, 5
movups xmm0, xmmword [rbp - 0x60]
movups xmm1, xmmword [rbp - 0x50]
movups xmmword [rsi + rax + 0x10], xmm1
movups xmmword [rsi + rax], xmm0
inc rdi
mov rbx, qword [rbp + 0x3f0]
cmp qword [rbp + 0x408], 0
je 0x180014db0
mov r8, qword [rbp + 0x400]
mov rcx, qword [0x18003bb38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rbp + 0x3d8], 0
je 0x180014dd0
mov rcx, qword [0x18003bb38]
xor edx, edx
mov r8, qword [rbp + 0x420]
call qword [sym.imp.kernel32.dll_HeapFree]
shl rdi, 5
add rdi, rsi
mov rax, qword [rbp + 0x3b0]
mov qword [rax], rsi
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
movaps xmm6, xmmword [rbp + 0x430]
add rsp, 0x4c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r8, qword [rbp + 0x3c0]
mov r8, qword [r8 - 8]
mov rcx, qword [0x18003bb38]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [0x18003bb38]
xor edx, edx
mov r8, qword [rbp + 0x420]
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x180014cce
lea rcx, str.internal_error:_entered_unreachable_code_rustc_b4e54c6e39984840a04dcd02d14ec8c3574d30e5library_alloc_src_vecmod.rs
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.180028240
jmp 0x180014e6c
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r15
mov r8, rax
call fcn.1800281c0
ud2