Function at 0x140014820
Capabilities:
Accept command line arguments

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0x160], xmm7
movaps xmmword [rsp + 0x150], xmm6
mov rax, qword [0x14010a040]
xor rax, rsp
mov qword [rsp + 0x148], rax
mov r15, qword [0x14011b6b0]
test r15, r15
jne 0x140014d38
mov ecx, 0x50
call fcn.14005c69c
mov rsi, rax
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov byte [rax + 0x10], 0
mov ecx, 0x18
call fcn.14005c69c
mov qword [rsi + 0x18], rax
lea rcx, [rax + 0x18]
mov qword [rsi + 0x28], rcx
test rax, rax
je 0x14001542b
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [rsi + 0x20], rcx
mov rdi, rsi
add rdi, 0x38
movups xmmword [rsi + 0x38], xmm6
mov qword [rsi + 0x30], rdi
mov qword [rsi + 0x48], 1
mov qword [0x14011b6b0], rsi
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
test rax, rax
je 0x14001542b
mov rbx, rax
mov rcx, rax
call fcn.14005cc4c
lea rbp, [rsp + 0x100]
mov qword [rbp], rbx
mov qword [rbp + 8], rax
lea rax, str._t_v_f__n_r
lea r8, [rsp + 0x118]
mov qword [r8], rax
mov qword [r8 + 8], 0x19
lea rbx, [rsp + 0xe0]
mov rcx, rbx
mov rdx, rbp
mov r9d, 3
call fcn.140054b20
mov rax, qword [rbx + 8]
test rax, rax
je 0x140014d38
mov rbx, qword [rsp + 0xe0]
mov qword [rsi], rbx
mov qword [rsi + 8], rax
mov dword [rsp + 0x6c], 0
lea rcx, [0x1400f7ea4]
xor edx, edx
mov r8d, 0x800
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov r13, rax
test rax, rax
je 0x1400154c7
lea rdx, [0x1400f7ef4]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14001547b
lea rdx, [rsp + 0x6c]
mov rcx, rbx
call qword [0x1400ff3b8]
mov qword [rsp + 0x30], rax
movsxd r14, dword [rsp + 0x6c]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], 0
test r14, r14
mov qword [rsp + 0x40], r15
je 0x14001548f
test r14d, r14d
js 0x140015482
shl r14, 3
lea rbx, [r14 + r14*2]
mov rcx, rbx
call fcn.14005c69c
mov r15, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
add rax, rbx
mov qword [rsp + 0x60], rax
xor ebx, ebx
mov r12, r15
test r12, r12
je 0x14001542b
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax + rbx]
mov rcx, r12
call fcn.140009010
add r12, 0x18
add rbx, 8
cmp r14, rbx
jne 0x1400149ed
mov qword [rsp + 0x58], r12
mov ecx, 0x18
call fcn.14005c69c
test rax, rax
je 0x14001542b
mov rbx, rax
mov qword [rsp + 0x38], r13
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov r14, qword [rsi + 0x18]
test r14, r14
je 0x140014a88
mov r13, qword [rsi + 0x20]
mov rcx, r14
cmp r13, r14
je 0x140014a7f
add r13, 0xffffffffffffffe8
test r13, r13
je 0x14001542b
cmp byte [r13 + 0x17], 0
js 0x14001549a
lea rax, [r13 - 0x18]
cmp r13, r14
mov r13, rax
jne 0x140014a5b
mov rcx, qword [rsi + 0x18]
mov qword [rsi + 0x20], r14
call fcn.14005c694
mov rax, rbx
add rax, 0x18
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], rax
mov qword [rsi + 0x28], rax
mov rcx, qword [rsi + 0x38]
call fcn.1400156a0
mov qword [rsi + 0x30], rdi
movups xmmword [rsi + 0x38], xmm6
mov qword [rsi + 0x48], 1
cmp r15, r12
je 0x1400154a8
movsx rax, byte [r15 + 0x17]
test rax, rax
jns 0x1400154da
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
test rax, rax
js 0x14001542b
test rax, rax
sete al
test rcx, rcx
setne cl
or cl, al
je 0x14001542b
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x70]
call fcn.140056ff0
movsx rax, byte [rsp + 0x117]
test rax, rax
cmovs rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
cmovns rcx, rbp
test rax, rax
js 0x14001542b
sete dl
test rcx, rcx
setne r8b
or r8b, dl
je 0x14001542b
movabs r14, 0x7ffffffffffffff7
lea r8, [rsp + 0x118]
lea rdx, str._t_v_f__n_r
mov qword [r8], rdx
mov qword [r8 + 8], 0x19
lea rdx, [rsp + 0xe0]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
lea rdi, [rsp + 0xc0]
mov rcx, rdi
mov r9d, 3
call fcn.140054b20
mov rbx, qword [rdi + 8]
cmp rbx, r14
ja 0x140015439
mov rbp, qword [rsp + 0xc0]
cmp rbx, 0xa
ja 0x140014c7b
lea rcx, [rsp + 0x118]
mov byte [rcx + 0x17], bl
lea rdi, [rcx + rbx*2]
cmp rcx, rbp
seta al
cmp rdi, rbp
setbe dl
or dl, al
lea r14, [rsp + 0x118]
je 0x14001542b
test rbx, rbx
je 0x140014bee
add rbx, rbx
mov rdx, rbp
mov r8, rbx
call fcn.14008fbd0
mov word [rdi], 0
mov rdi, qword [rsi + 0x18]
cmp qword [rsi + 0x20], rdi
je 0x14001542b
cmp byte [rdi + 0x17], 0
lea r13, [rsp + 0x100]
js 0x1400154ba
mov rax, qword [rsp + 0x128]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x118]
movups xmmword [rdi], xmm0
cmp byte [rsp + 0x117], 0
jns 0x140014c41
mov rcx, qword [rsp + 0x100]
call fcn.14005c694
cmp r15, r12
je 0x140014ccf
mov rax, r12
sub rax, r15
add r15, 0x18
cmp rax, 0x18
jl 0x14001548c
je 0x140014ccf
mov rax, qword [rsi + 8]
mov qword [rsp + 0x48], rax
mov dil, 1
movaps xmm6, xmmword [0x1400edb10]
xorps xmm7, xmm7
jmp 0x140014eaf
lea rax, [r14 + 5]
and rax, rbx
add rax, 4
mov rdi, rbx
or rdi, 3
cmp rdi, 0xb
cmove rdi, rax
inc rdi
js 0x140015446
lea rcx, [rdi + rdi]
call fcn.14005c69c
mov rcx, rax
mov qword [rsp + 0x118], rax
lea rax, [r14 + rdi]
add rax, 9
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x120], rbx
jmp 0x140014bbb
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140014cf0
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rsi, qword [rsp + 0x50]
test rsi, rsi
mov r15, qword [rsp + 0x40]
je 0x140014d38
mov rdi, qword [rsp + 0x58]
cmp rdi, rsi
je 0x140014d30
add rdi, 0xffffffffffffffe8
test rdi, rdi
je 0x14001542b
cmp byte [rdi + 0x17], 0
jns 0x140014d24
mov rcx, qword [rdi]
call fcn.14005c694
lea rax, [rdi - 0x18]
cmp rdi, rsi
mov rdi, rax
jne 0x140014d0d
mov rcx, rsi
call fcn.14005c694
test r15, r15
sete bl
mov rcx, qword [rsp + 0x148]
xor rcx, rsp
call fcn.14005e230
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [r14 + 5]
and rax, rbx
add rax, 4
mov r13, rbx
or r13, 3
cmp r13, 0xb
cmove r13, rax
inc r13
js 0x140015446
lea rcx, [r13*2]
call fcn.14005c69c
mov rcx, rax
mov qword [rsp + 0x118], rax
lea rax, [r14 + r13]
add rax, 9
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x120], rbx
lea r14, [rsp + 0x118]
jmp 0x140014fb1
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
mov rcx, r13
call fcn.140004c30
jmp 0x140014eec
mov ebx, 3
jmp 0x140014e84
movsx rcx, byte [rsp + 0x117]
test rcx, rcx
cmovs rcx, qword [rsp + 0x108]
mov rax, qword [rsp + 0x100]
cmovns rax, r13
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
test rcx, rcx
js 0x14001542b
sete cl
test rax, rax
setne al
or al, cl
je 0x14001542b
mov rcx, rsi
lea rdx, [rsp + 0x80]
call fcn.140015700
xor ebx, ebx
cmp byte [rsp + 0xd7], 0
jns 0x140014e66
mov rcx, qword [rsp + 0xc0]
call fcn.14005c694
cmp byte [rsp + 0xf7], 0
jns 0x140014e7d
mov rcx, qword [rsp + 0xe0]
call fcn.14005c694
mov cl, byte [rsp + 0x117]
test cl, cl
jns 0x140014e95
mov rcx, qword [rsp + 0x100]
call fcn.14005c694
cmp ebx, 3
je 0x140014ea2
test ebx, ebx
jne 0x140014ccf
add r15, 0x18
cmp r15, r12
je 0x140014ccf
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x110], rax
movaps xmmword [rsp + 0x100], xmm6
cmp byte [r15 + 0x17], 0
js 0x140014dd4
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x110], rax
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x100], xmm0
movsx rax, byte [rsp + 0x117]
test rax, rax
cmovs rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
cmovns rcx, r13
test rax, rax
js 0x14001542b
sete dl
test rcx, rcx
setne r8b
or r8b, dl
je 0x14001542b
lea rdx, str._t_v_f__n_r
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x120], 0x19
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rax
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0xe0]
mov r8, r14
mov r9d, 3
call fcn.140054b20
mov rbx, qword [rsp + 0xc8]
movabs r14, 0x7ffffffffffffff7
cmp rbx, r14
ja 0x140015439
mov rbp, qword [rsp + 0xc0]
cmp rbx, 0xa
ja 0x140014d74
mov byte [rsp + 0x12f], bl
lea r14, [rsp + 0x118]
mov rcx, r14
lea r13, [rcx + rbx*2]
cmp rcx, rbp
seta al
cmp r13, rbp
setbe dl
or dl, al
je 0x14001542b
test rbx, rbx
je 0x140014fdc
add rbx, rbx
mov rdx, rbp
mov r8, rbx
call fcn.14008fbd0
mov word [r13], 0
cmp byte [rsp + 0x117], 0
jns 0x140014ffa
mov rcx, qword [rsp + 0x100]
call fcn.14005c694
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x110], rax
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0x100], xmm0
movsx rcx, byte [rsp + 0x117]
mov rax, rcx
test rcx, rcx
lea r13, [rsp + 0x100]
jns 0x14001503b
mov rax, qword [rsp + 0x108]
test rax, rax
je 0x140014de8
test cl, cl
movaps xmmword [rsp + 0xe0], xmm7
mov edx, 0
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xd0], rdx
movaps xmmword [rsp + 0xc0], xmm7
mov r8, qword [rsp + 0x100]
mov rdx, r13
cmovs rdx, r8
test rax, rax
js 0x14001542b
test rdx, rdx
je 0x14001542b
mov r9b, 1
cmp rax, 2
jne 0x1400150ab
cmp word [rdx], 0x2d
jne 0x1400150ab
test cl, cl
cmovns r8, r13
cmp word [r8 + 2], 0x2d
setne r9b
and dil, r9b
xor ecx, ecx
mov word [rsp + 0xe0], cx
mov byte [rsp + 0xf7], cl
mov word [rsp + 0xc0], cx
mov byte [rsp + 0xd7], cl
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x138], rax
lea rcx, [rsp + 0x130]
call fcn.140016480
test rax, rax
je 0x140014df2
movsx rdx, byte [rsp + 0x117]
mov rcx, rdx
test rdx, rdx
jns 0x14001510d
mov rcx, qword [rsp + 0x108]
cmp rax, rcx
je 0x140014df2
mov rax, r13
test dl, dl
jns 0x140015125
mov rax, qword [rsp + 0x100]
lea rdx, [rax + rcx*2]
mov r8, rdx
test rcx, rcx
jle 0x14001514e
mov r8, rax
cmp word [r8], 0x3d
je 0x140015149
add r8, 2
dec rcx
jne 0x140015134
mov r8, rdx
jmp 0x14001514e
test r8, r8
je 0x140015144
mov rbx, r8
sub rbx, rax
sar rbx, 1
cmp r8, rdx
mov rax, 0xffffffffffffffff
cmove rbx, rax
lea rax, [rsp + 0x147]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, r13
xor r8d, r8d
mov r9, rbx
call fcn.1400155b0
cmp byte [rsp + 0xf7], 0
js 0x14001544b
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0xe0], xmm0
cmp rbx, 0xffffffffffffffff
je 0x14001520a
inc rbx
lea rax, [rsp + 0x147]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, r13
mov r8, rbx
mov r9, 0xffffffffffffffff
call fcn.1400155b0
cmp byte [rsp + 0xd7], 0
js 0x14001545d
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0xd0], rax
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0xc0], xmm0
test dil, dil
je 0x140014df2
cmp qword [rsp + 0x48], 0
je 0x1400152e9
movsx rbx, byte [rsp + 0xf7]
test rbx, rbx
cmovs rbx, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xe0]
lea rax, [rsp + 0xe0]
cmovns rdi, rax
test rbx, rbx
js 0x14001542b
sete al
test rdi, rdi
setne cl
or cl, al
je 0x14001542b
mov qword [rsp + 0x118], rdi
mov qword [rsp + 0x120], rbx
mov rcx, r14
call fcn.140016480
test rax, rax
je 0x1400152e9
cmp rbx, rax
je 0x1400152e9
lea rcx, [rdi + rbx*2]
mov rdx, rcx
test rbx, rbx
je 0x1400152ac
mov rdx, rdi
mov r8, rbx
cmp word [rdx], 0x3d
je 0x14001542d
add rdx, 2
dec r8
jne 0x140015296
mov rdx, rcx
sub rbx, rax
jb 0x14001546f
mov r8, rdx
sub r8, rdi
sar r8, 1
cmp rdx, rcx
mov rcx, 0xffffffffffffffff
cmove r8, rcx
sub r8, rax
cmp rbx, r8
cmovb r8, rbx
test r8, r8
js 0x14001542b
cmp r8, 0xf
je 0x14001541b
movsx rcx, byte [rsp + 0xd7]
test rcx, rcx
cmovs rcx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xc0]
lea rdx, [rsp + 0xc0]
cmovns rax, rdx
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rcx
test rcx, rcx
js 0x14001542b
sete cl
test rax, rax
setne al
or al, cl
je 0x14001542b
movsx rcx, byte [rsp + 0xf7]
test rcx, rcx
cmovs rcx, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xe0]
lea rdx, [rsp + 0xe0]
cmovns rax, rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rcx
test rcx, rcx
js 0x14001542b
sete cl
test rax, rax
setne al
or al, cl
je 0x14001542b
mov rcx, r14
lea rdx, [rsp + 0x90]
call fcn.140057ac0
movsx rcx, byte [rsp + 0x12f]
mov rax, r14
test rcx, rcx
jns 0x1400153c0
mov rcx, qword [rsp + 0x120]
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rcx
test rcx, rcx
js 0x14001542b
sete cl
test rax, rax
setne al
or al, cl
je 0x14001542b
mov rcx, rsi
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0xb0]
call fcn.140015950
cmp byte [rsp + 0x12f], 0
jns 0x140015411
mov rcx, qword [rsp + 0x118]
call fcn.14005c694
xor ebx, ebx
mov dil, 1
jmp 0x140014e4f
cmp word [rdi + rax*2], 0x73
jne 0x1400152e9
jmp 0x1400154ec
ud2
test rdx, rdx
cmove rdx, rcx
jmp 0x1400152ac
lea rcx, [rsp + 0x118]
call fcn.1400922d0
call fcn.1400927c0
mov rcx, qword [rsp + 0xe0]
call fcn.14005c694
jmp 0x140015191
mov rcx, qword [rsp + 0xc0]
call fcn.14005c694
jmp 0x1400151ea
lea rcx, [0x1400edcb0]
call fcn.140092780
xor eax, eax
jmp 0x140014991
lea rcx, [rsp + 0x50]
call fcn.140092bb0
int3
xor r12d, r12d
xor r15d, r15d
jmp 0x140014a19
mov rcx, qword [r13]
call fcn.14005c694
jmp 0x140014a6f
lea rcx, [rsp + 0x100]
call fcn.14003cc20
jmp 0x140014b0b
mov rcx, qword [rdi]
call fcn.14005c694
jmp 0x140014c13
lea rdx, [rsp + 0x6c]
mov rcx, rbx
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
jmp 0x140014991
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], rax
mov rcx, r15
jmp 0x140014ae5
cmp word [rdi + rax*2 + 2], 0x69
jne 0x1400152e9
cmp word [rdi + rax*2 + 4], 0x6e
jne 0x1400152e9
cmp word [rdi + rax*2 + 6], 0x67
jne 0x1400152e9
cmp word [rdi + rax*2 + 8], 0x6c
jne 0x1400152e9
cmp word [rdi + rax*2 + 0xa], 0x65
jne 0x1400152e9
cmp word [rdi + rax*2 + 0xc], 0x2d
jne 0x1400152e9
cmp word [rdi + rax*2 + 0xe], 0x61
jne 0x1400152e9
cmp word [rdi + rax*2 + 0x10], 0x72
jne 0x1400152e9
cmp word [rdi + rax*2 + 0x12], 0x67
jne 0x1400152e9
cmp word [rdi + rax*2 + 0x14], 0x75
jne 0x1400152e9
cmp word [rdi + rax*2 + 0x16], 0x6d
jne 0x1400152e9
cmp word [rdi + rax*2 + 0x18], 0x65
jne 0x1400152e9
cmp word [rdi + rax*2 + 0x1a], 0x6e
jne 0x1400152e9
cmp word [rdi + rax*2 + 0x1c], 0x74
jne 0x1400152e9
lea rdx, [rsp + 0xe0]
mov rcx, rsi
call fcn.1400b1900
mov ebx, 1
jmp 0x140015413