Function at 0x140087870
Capabilities:
Accept command line arguments

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov rsi, rcx
call sub.kernel32.dll_GetCommandLineW
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 8
mov qword [rsp + 0x50], 0
test rax, rax
je 0x140087d46
movzx ebp, word [rax]
test bp, bp
je 0x140087d46
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 2
mov qword [rsp + 0x88], 0
add rax, 2
mov ecx, 2
xor r8d, r8d
lea rdi, [rsp + 0x78]
xor ebx, ebx
jmp 0x14008791e
mov word [rcx + r8*2], bp
inc r8
mov qword [rsp + 0x88], r8
movzx ebp, word [r13]
lea rax, [r13 + 2]
test bp, bp
je 0x140087984
mov r13, rax
cmp bp, 9
je 0x140087950
movzx eax, bp
cmp eax, 0x20
je 0x140087950
cmp eax, 0x22
jne 0x140087955
not bl
and bl, 1
movzx ebp, word [r13]
lea rax, [r13 + 2]
test bp, bp
jne 0x14008791e
jmp 0x140087984
test bl, 1
je 0x140087984
cmp r8, qword [rsp + 0x78]
jne 0x140087900
mov rcx, rdi
mov rdx, r8
call dbg.reserve_for_push<u16, alloc::alloc::Global>
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
jmp 0x140087900
add r13, 2
movzx eax, word [r13]
cmp eax, 0x20
je 0x140087980
cmp eax, 9
je 0x140087980
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x58]
call dbg.from_wide
lea rcx, [rsp + 0x40]
xor edx, edx
call dbg.reserve_for_push<addr2line::LineSequence, alloc::alloc::Global>
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov rdx, rcx
shl rdx, 5
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movups xmmword [rax + rdx + 0x10], xmm1
movups xmmword [rax + rdx], xmm0
inc rcx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 2
mov qword [rsp + 0x38], 0
movzx r12d, word [r13]
test r12w, r12w
je 0x140087df7
mov r15d, 2
xor r8d, r8d
lea rdi, [rsp + 0x58]
lea r14, [rsp + 0x28]
movaps xmm6, xmmword [0x14010a220]
xor ebp, ebp
jmp 0x140087a53
mov r15, qword [rsp + 0x30]
mov word [r15 + r8*2], r12w
inc r8
mov qword [rsp + 0x38], r8
movzx r12d, word [rbx]
mov r13, rbx
test r12w, r12w
je 0x140087dfc
lea rbx, [r13 + 2]
movzx eax, r12w
cmp eax, 0x21
jg 0x140087b00
cmp eax, 9
je 0x140087a72
cmp eax, 0x20
jne 0x140087b70
test bpl, 1
jne 0x140087b70
mov r15, qword [rsp + 0x30]
mov rcx, rdi
mov rdx, r15
call dbg.from_wide
mov rdx, qword [rsp + 0x50]
cmp rdx, qword [rsp + 0x40]
jne 0x140087aa7
lea rcx, [rsp + 0x40]
call dbg.reserve_for_push<addr2line::LineSequence, alloc::alloc::Global>
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
mov rcx, rdx
shl rcx, 5
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
inc rdx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x38], 0
jmp 0x140087ae4
add rbx, 2
movzx r12d, word [rbx]
cmp r12d, 0x20
je 0x140087ae0
cmp r12d, 9
je 0x140087ae0
xor r8d, r8d
jmp 0x140087a46
cmp eax, 0x22
je 0x140087b90
cmp eax, 0x5c
jne 0x140087b70
movzx eax, word [rbx]
xor r12d, r12d
cmp ax, 0x5c
jne 0x140087b33
nop word [rax + rax]
add rbx, 2
movzx eax, word [r13 + r12*2 + 4]
inc r12
cmp ax, 0x5c
je 0x140087b20
inc r12
cmp ax, 0x22
jne 0x140087b9e
mov r13, r12
shr r13, 1
mov rax, qword [rsp + 0x28]
sub rax, r8
cmp rax, r13
jae 0x140087be3
mov rcx, r14
mov rdx, r8
mov r8, r13
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h0f5ccd690f57f673
mov r8, qword [rsp + 0x38]
jmp 0x140087bed
cmp r8, qword [rsp + 0x28]
jne 0x140087a30
mov rcx, r14
mov rdx, r8
call dbg.reserve_for_push<u16, alloc::alloc::Global>
mov r8, qword [rsp + 0x38]
jmp 0x140087a30
test bpl, 1
jne 0x140087bc5
mov bpl, 1
jmp 0x140087a42
mov rax, qword [rsp + 0x28]
sub rax, r8
cmp rax, r12
jae 0x140087c00
mov rcx, r14
mov rdx, r8
mov r8, r12
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h0f5ccd690f57f673
mov r15, qword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
jmp 0x140087c09
movzx r12d, word [rbx]
cmp r12d, 0x22
je 0x140087d08
test r12d, r12d
je 0x140087dfc
xor ebp, ebp
jmp 0x140087a46
cmp r12, 2
jb 0x140087cbf
mov r15, qword [rsp + 0x30]
cmp r12, 0x20
jae 0x140087c64
mov rax, r13
jmp 0x140087cb0
test r12, r12
je 0x140087a3d
cmp r12, 0x10
jae 0x140087c14
mov rax, r12
jmp 0x140087c50
mov rcx, r12
and rcx, 0xfffffffffffffff0
mov eax, r12d
and eax, 0xf
lea rdx, [r15 + r8*2]
add rdx, 0x10
add r8, rcx
xor r9d, r9d
nop
movups xmmword [rdx + r9*2 - 0x10], xmm6
movups xmmword [rdx + r9*2], xmm6
add r9, 0x10
cmp rcx, r9
jne 0x140087c30
cmp r12, rcx
je 0x140087a3d
nop dword [rax]
mov word [r15 + r8*2], 0x5c
inc r8
dec rax
jne 0x140087c50
jmp 0x140087a3d
mov rcx, r13
movabs rax, 0x7ffffffffffffff0
and rcx, rax
mov eax, r13d
and eax, 0xf
lea rdx, [r15 + r8*2]
add rdx, 0x10
add r8, rcx
xor r9d, r9d
nop dword [rax + rax]
movups xmmword [rdx + r9*2 - 0x10], xmm6
movups xmmword [rdx + r9*2], xmm6
add r9, 0x10
cmp rcx, r9
jne 0x140087c90
cmp r13, rcx
je 0x140087cbf
nop dword [rax]
mov word [r15 + r8*2], 0x5c
inc r8
dec rax
jne 0x140087cb0
mov qword [rsp + 0x38], r8
test r12b, 1
je 0x140087a42
xor r15d, r15d
cmp word [rbx], 0
setne r12b
cmp r8, qword [rsp + 0x28]
jne 0x140087cf0
mov rcx, r14
mov rdx, r8
call dbg.reserve_for_push<u16, alloc::alloc::Global>
mov r8, qword [rsp + 0x38]
mov r15b, r12b
lea rbx, [rbx + r15*2]
mov r15, qword [rsp + 0x30]
mov word [r15 + r8*2], 0x22
jmp 0x140087a3a
cmp r8, qword [rsp + 0x28]
jne 0x140087d1f
mov rcx, r14
mov rdx, r8
call dbg.reserve_for_push<u16, alloc::alloc::Global>
mov r8, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov word [r15 + r8*2], 0x22
inc r8
mov qword [rsp + 0x38], r8
lea rax, [r13 + 4]
cmp word [r13 + 2], 0
cmovne rbx, rax
jmp 0x140087a42
lea rcx, [rsp + 0x58]
call dbg.current_exe
mov rbx, qword [rsp + 0x58]
movabs rax, 0x7ffffffffffffff0
add rax, 0x10
cmp rbx, rax
jne 0x140087d8c
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x58]
call dbg.drop_in_place<std::io::error::Error>
mov r14d, 1
mov bpl, 1
xor r12d, r12d
xor ebx, ebx
jmp 0x140087dab
mov r14, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
movzx ebp, byte [rsp + 0x70]
mov eax, dword [rsp + 0x71]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x74]
mov dword [rsp + 0x2b], eax
lea rcx, [rsp + 0x40]
xor edx, edx
call dbg.reserve_for_push<addr2line::LineSequence, alloc::alloc::Global>
mov r15, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rax, rdi
shl rax, 5
mov qword [r15 + rax], rbx
mov qword [r15 + rax + 8], r14
mov qword [r15 + rax + 0x10], r12
mov byte [r15 + rax + 0x18], bpl
mov ecx, dword [rsp + 0x28]
mov edx, dword [rsp + 0x2b]
mov dword [r15 + rax + 0x1c], edx
mov dword [r15 + rax + 0x19], ecx
inc rdi
mov rbx, qword [rsp + 0x40]
jmp 0x140087e5b
xor r8d, r8d
xor ebp, ebp
test r8, r8
jne 0x140087e90
and bpl, 1
jne 0x140087e90
mov r15, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x140087e3b
mov rcx, qword [rsp + 0x30]
add rdx, rdx
mov r8d, 2
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x140087e5b
mov rcx, qword [rsp + 0x80]
add rdx, rdx
mov r8d, 2
call sym.__rust_dealloc
shl rdi, 5
add rdi, r15
mov qword [rsi], r15
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], rdi
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x58]
call dbg.from_wide
mov rdi, qword [rsp + 0x50]
cmp rdi, qword [rsp + 0x40]
jne 0x140087ebd
lea rcx, [rsp + 0x40]
mov rdx, rdi
call dbg.reserve_for_push<addr2line::LineSequence, alloc::alloc::Global>
mov rdi, qword [rsp + 0x50]
mov r15, qword [rsp + 0x48]
mov rax, rdi
shl rax, 5
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movups xmmword [r15 + rax + 0x10], xmm1
movups xmmword [r15 + rax], xmm0
inc rdi
mov rbx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
test rdx, rdx
jne 0x140087e28
jmp 0x140087e3b