Function at 0x140090080
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 [0x14013b040]
xor rax, rsp
mov qword [rsp + 0x148], rax
mov rsi, qword [0x14014cb50]
test rsi, rsi
jne 0x140090d5a
mov ecx, 0x50
call fcn.14009d274
mov rdi, rax
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov byte [rax + 0x10], 0
mov ecx, 0x18
call fcn.14009d274
mov qword [rdi + 0x18], rax
lea rcx, [rax + 0x18]
mov qword [rdi + 0x28], rcx
test rax, rax
je 0x140090e9c
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [rdi + 0x20], rcx
mov r15, rdi
add r15, 0x38
movups xmmword [rdi + 0x38], xmm6
mov qword [rdi + 0x30], r15
mov qword [rdi + 0x48], 1
mov qword [0x14014cb50], rdi
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
test rax, rax
je 0x140090e9f
mov rbx, rax
mov rcx, rax
call fcn.14009d990
lea rdx, [rsp + 0x100]
mov qword [rdx], rbx
mov qword [rdx + 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 r9d, 3
call fcn.14008b0e0
mov rax, qword [rbx + 8]
test rax, rax
je 0x140090d5a
mov rbx, qword [rsp + 0xe0]
mov qword [rdi], rbx
mov qword [rdi + 8], rax
mov dword [rsp + 0x6c], 0
lea rcx, [0x140127c94]
xor edx, edx
mov r8d, 0x800
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test rax, rax
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r15
je 0x140090ef8
lea rdx, [0x140127ce4]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140090ea2
lea rdx, [rsp + 0x6c]
mov rcx, rbx
call qword [0x14012fc00]
mov qword [rsp + 0x40], rax
movabs r13, 0x7ffffffffffffff7
movsxd r15, dword [rsp + 0x6c]
test r15, r15
mov qword [rsp + 0x58], rsi
je 0x140090ec7
test r15d, r15d
js 0x140090ea9
shl r15, 3
lea rcx, [r15 + r15*2]
call fcn.14009d274
mov r14, rax
xor ebp, ebp
lea rdi, [r13 + 5]
mov qword [rsp + 0x38], rax
jmp 0x1400902b9
mov rax, r12
and rax, rdi
add rax, 4
mov rsi, r12
or rsi, 3
cmp rsi, 0xb
cmove rsi, rax
inc rsi
js 0x140090e3f
lea rcx, [rsi + rsi]
call fcn.14009d274
mov rcx, rax
mov qword [r14], rax
lea rax, [rsi + r13]
add rax, 9
mov qword [r14 + 0x10], rax
mov qword [r14 + 8], r12
lea rsi, [rcx + r12*2]
cmp rcx, rbx
ja 0x140090294
cmp rsi, rbx
ja 0x140090e42
test r12, r12
je 0x1400902a7
add r12, r12
mov rdx, rbx
mov r8, r12
call fcn.1400d07c0
mov word [rsi], 0
add r14, 0x18
add rbp, 8
cmp r15, rbp
je 0x1400902fb
test r14, r14
je 0x140090e2a
mov rax, qword [rsp + 0x40]
mov rbx, qword [rax + rbp]
test rbx, rbx
je 0x140090e2d
mov rcx, rbx
call fcn.14009d990
cmp rax, r13
ja 0x140090e30
mov r12, rax
cmp rax, 0xa
ja 0x140090241
mov byte [r14 + 0x17], r12b
mov rcx, r14
jmp 0x140090282
mov ecx, 0x18
call fcn.14009d274
test rax, rax
mov r15, qword [rsp + 0x30]
lea r12, [rsp + 0x100]
je 0x140090eac
mov rbx, rax
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov rdi, qword [r15 + 0x18]
test rdi, rdi
je 0x140090385
mov rsi, r15
mov r15, qword [r15 + 0x20]
mov rcx, rdi
cmp r15, rdi
je 0x140090379
add r15, 0xffffffffffffffe8
jmp 0x14009035e
mov rcx, qword [r15]
call fcn.14009d26c
lea rax, [r15 - 0x18]
cmp r15, rdi
mov r15, rax
je 0x140090370
test r15, r15
je 0x140090e51
cmp byte [r15 + 0x17], 0
js 0x14009034a
jmp 0x140090352
mov rsi, qword [rsp + 0x30]
mov rcx, qword [rsi + 0x18]
mov qword [rsi + 0x20], rdi
call fcn.14009d26c
mov r15, rsi
mov rax, rbx
add rax, 0x18
mov qword [r15 + 0x18], rbx
mov qword [r15 + 0x20], rax
mov qword [r15 + 0x28], rax
mov rcx, qword [r15 + 0x38]
call fcn.140004ab0
mov rax, qword [rsp + 0x48]
mov qword [r15 + 0x30], rax
movups xmmword [r15 + 0x38], xmm6
mov qword [r15 + 0x48], 1
mov rdx, qword [rsp + 0x38]
cmp rdx, r14
je 0x140090ed6
movsx rax, byte [rdx + 0x17]
test rax, rax
jns 0x140090f0b
mov rcx, qword [rdx]
mov rax, qword [rdx + 8]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
test rax, rax
js 0x140090eaf
test rax, rax
sete al
test rcx, rcx
setne cl
or cl, al
je 0x140090eb2
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0x70]
call fcn.140093b00
movsx rax, byte [rsp + 0x117]
test rax, rax
cmovs rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
cmovns rcx, r12
test rax, rax
js 0x140090eb5
sete dl
test rcx, rcx
setne r8b
or r8b, dl
je 0x140090eb8
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 rsi, [rsp + 0xc0]
mov rcx, rsi
mov r9d, 3
call fcn.14008b0e0
mov rbx, qword [rsi + 8]
cmp rbx, r13
ja 0x140090ebb
mov rbp, qword [rsp + 0xc0]
cmp rbx, 0xa
jbe 0x1400905f5
lea rax, [r13 + 5]
and rax, rbx
add rax, 4
mov rsi, rbx
or rsi, 3
cmp rsi, 0xb
cmove rsi, rax
inc rsi
js 0x140090ef5
lea rcx, [rsi + rsi]
call fcn.14009d274
mov rcx, rax
mov qword [rsp + 0x118], rax
lea rax, [rsi + r13]
add rax, 9
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x120], rbx
lea rdi, [rcx + rbx*2]
cmp rcx, rbp
seta al
cmp rdi, rbp
setbe dl
or dl, al
je 0x140090ebe
test rbx, rbx
je 0x140090528
add rbx, rbx
mov rdx, rbp
mov r8, rbx
call fcn.1400d07c0
mov word [rdi], 0
mov rsi, qword [r15 + 0x18]
cmp qword [r15 + 0x20], rsi
je 0x140090ec1
cmp byte [rsi + 0x17], 0
lea rbp, [rsp + 0x100]
mov rdi, qword [rsp + 0x38]
js 0x140090ee8
mov rax, qword [rsp + 0x128]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x118]
movups xmmword [rsi], xmm0
cmp byte [rsp + 0x117], 0
jns 0x140090580
mov rcx, qword [rsp + 0x100]
call fcn.14009d26c
cmp rdi, r14
lea rsi, [rsp + 0x118]
je 0x140090cf5
mov rcx, r14
sub rcx, rdi
cmp rcx, 0x18
jl 0x140090ec4
sar rcx, 3
movabs rax, 0xaaaaaaaaaaaaaaab
imul rax, rcx
dec rax
je 0x140090ceb
mov rdx, qword [rsp + 0x38]
lea r15, [rdx + 0x18]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x60], rcx
lea rax, [rax + rax*2]
lea rax, [rdx + rax*8 + 0x18]
mov qword [rsp + 0x48], rax
mov r12b, 1
movaps xmm6, xmmword [0x14011c0c0]
xor edi, edi
xorps xmm7, xmm7
jmp 0x1400906f3
lea rcx, [rsp + 0x118]
mov byte [rcx + 0x17], bl
jmp 0x1400904fd
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
mov rcx, rbp
call fcn.140069af0
jmp 0x140090730
mov byte [rsp + 0x12f], bl
mov rcx, rsi
jmp 0x140090828
mov ebx, 3
jmp 0x1400906c6
movsx rcx, byte [rsp + 0x117]
test rcx, rcx
cmovs rcx, qword [rsp + 0x108]
mov rax, qword [rsp + 0x100]
cmovns rax, rbp
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
test rcx, rcx
js 0x140090e78
sete cl
test rax, rax
setne al
or al, cl
je 0x140090e7b
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x80]
call fcn.140015b70
xor ebx, ebx
cmp byte [rsp + 0xd7], 0
jns 0x1400906a8
mov rcx, qword [rsp + 0xc0]
call fcn.14009d26c
cmp byte [rsp + 0xf7], 0
jns 0x1400906bf
mov rcx, qword [rsp + 0xe0]
call fcn.14009d26c
mov cl, byte [rsp + 0x117]
test cl, cl
jns 0x1400906d7
mov rcx, qword [rsp + 0x100]
call fcn.14009d26c
cmp ebx, 3
je 0x1400906e4
test ebx, ebx
jne 0x140090ceb
add r15, 0x18
cmp r15, qword [rsp + 0x48]
je 0x140090ceb
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x110], rax
movaps xmmword [rsp + 0x100], xmm6
cmp byte [r15 + 0x17], 0
js 0x140090605
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, rbp
test rax, rax
js 0x140090e33
sete dl
test rcx, rcx
setne r8b
or r8b, dl
je 0x140090e36
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, rsi
mov r9d, 3
call fcn.14008b0e0
mov rbx, qword [rsp + 0xc8]
cmp rbx, r13
ja 0x140090e39
mov rbp, qword [rsp + 0xc0]
cmp rbx, 0xa
jbe 0x140090619
lea rax, [r13 + 5]
and rax, rbx
add rax, 4
mov rsi, rbx
or rsi, 3
cmp rsi, 0xb
cmove rsi, rax
inc rsi
js 0x140090e4e
lea rcx, [rsi + rsi]
call fcn.14009d274
mov rcx, rax
mov qword [rsp + 0x118], rax
lea rax, [rsi + r13]
add rax, 9
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x120], rbx
lea rsi, [rcx + rbx*2]
cmp rcx, rbp
seta al
cmp rsi, rbp
setbe dl
or dl, al
je 0x140090e3c
test rbx, rbx
je 0x140090853
add rbx, rbx
mov rdx, rbp
mov r8, rbx
call fcn.1400d07c0
mov word [rsi], 0
cmp byte [rsp + 0x117], 0
jns 0x14009086f
mov rcx, qword [rsp + 0x100]
call fcn.14009d26c
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 rbp, [rsp + 0x100]
lea rsi, [rsp + 0x118]
jns 0x1400908b8
mov rax, qword [rsp + 0x108]
test rax, rax
je 0x140090628
test cl, cl
movaps xmmword [rsp + 0xe0], xmm7
mov qword [rsp + 0xf0], rdi
mov qword [rsp + 0xd0], rdi
movaps xmmword [rsp + 0xc0], xmm7
mov r8, qword [rsp + 0x100]
mov rdx, rbp
cmovs rdx, r8
test rax, rax
js 0x140090e48
test rdx, rdx
je 0x140090e4b
mov r9b, 1
cmp rax, 2
jne 0x140090923
cmp word [rdx], 0x2d
jne 0x140090923
test cl, cl
cmovns r8, rbp
cmp word [r8 + 2], 0x2d
setne r9b
and r12b, r9b
mov word [rsp + 0xe0], di
mov byte [rsp + 0xf7], dil
mov word [rsp + 0xc0], di
mov byte [rsp + 0xd7], dil
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x138], rax
lea rcx, [rsp + 0x130]
call fcn.140091290
test rax, rax
je 0x140090632
movsx rdx, byte [rsp + 0x117]
mov rcx, rdx
test rdx, rdx
jns 0x140090985
mov rcx, qword [rsp + 0x108]
cmp rax, rcx
je 0x140090632
mov rax, rbp
test dl, dl
jns 0x14009099d
mov rax, qword [rsp + 0x100]
lea rdx, [rax + rcx*2]
mov r8, rdx
test rcx, rcx
jle 0x1400909c6
mov r8, rax
cmp word [r8], 0x3d
je 0x1400909c1
add r8, 2
dec rcx
jne 0x1400909ac
mov r8, rdx
jmp 0x1400909c6
test r8, r8
je 0x1400909bc
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, rsi
mov rdx, rbp
xor r8d, r8d
mov r9, rbx
call fcn.140090f20
cmp byte [rsp + 0xf7], 0
js 0x140090e54
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0xe0], xmm0
cmp rbx, 0xffffffffffffffff
je 0x140090a82
inc rbx
lea rax, [rsp + 0x147]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov rdx, rbp
mov r8, rbx
mov r9, 0xffffffffffffffff
call fcn.140090f20
cmp byte [rsp + 0xd7], 0
js 0x140090e7e
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0xd0], rax
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0xc0], xmm0
test r12b, r12b
je 0x140090632
cmp qword [rsp + 0x60], 0
je 0x140090b61
movsx r12, byte [rsp + 0xf7]
test r12, r12
cmovs r12, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xe0]
lea rax, [rsp + 0xe0]
cmovns rbx, rax
test r12, r12
js 0x140090e90
sete al
test rbx, rbx
setne cl
or cl, al
je 0x140090e93
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], r12
mov rcx, rsi
call fcn.140091290
test rax, rax
je 0x140090b61
cmp r12, rax
je 0x140090b61
lea rcx, [rbx + r12*2]
mov rdx, rcx
test r12, r12
je 0x140090b24
mov rdx, rbx
mov r8, r12
cmp word [rdx], 0x3d
je 0x140090cdd
add rdx, 2
dec r8
jne 0x140090b0e
mov rdx, rcx
sub r12, rax
jb 0x140090e96
mov r8, rdx
sub r8, rbx
sar r8, 1
cmp rdx, rcx
mov rcx, 0xffffffffffffffff
cmove r8, rcx
sub r8, rax
cmp r12, r8
cmovb r8, r12
test r8, r8
js 0x140090e99
cmp r8, 0xf
je 0x140090c9d
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 0x140090e66
sete cl
test rax, rax
setne al
or al, cl
je 0x140090e69
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 0x140090e6c
sete cl
test rax, rax
setne al
or al, cl
je 0x140090e6f
mov rcx, rsi
lea rdx, [rsp + 0x90]
call fcn.14007f970
movsx rcx, byte [rsp + 0x12f]
mov rax, rsi
test rcx, rcx
jns 0x140090c38
mov rcx, qword [rsp + 0x120]
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rcx
test rcx, rcx
js 0x140090e72
sete cl
test rax, rax
setne al
or al, cl
je 0x140090e75
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0xb0]
call fcn.140015db0
cmp byte [rsp + 0x12f], 0
jns 0x140090c93
mov rcx, qword [rsp + 0x118]
call fcn.14009d26c
xor ebx, ebx
mov r12b, 1
jmp 0x140090691
cmp word [rbx + rax*2], 0x73
jne 0x140090b61
cmp word [rbx + rax*2 + 2], 0x69
jne 0x140090b61
cmp word [rbx + rax*2 + 4], 0x6e
jne 0x140090b61
cmp word [rbx + rax*2 + 6], 0x67
jne 0x140090b61
cmp word [rbx + rax*2 + 8], 0x6c
je 0x140090d96
jmp 0x140090b61
test rdx, rdx
jne 0x140090b24
jmp 0x140090b21
mov r15, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
xorps xmm0, xmm0
movups xmmword [r15], xmm0
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140090d17
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test rdi, rdi
je 0x140090d55
cmp rdi, r14
je 0x140090d4d
add r14, 0xffffffffffffffe8
jmp 0x140090d3b
mov rcx, qword [r14]
call fcn.14009d26c
lea rax, [r14 - 0x18]
cmp r14, rdi
mov r14, rax
je 0x140090d4d
test r14, r14
je 0x140090e45
cmp byte [r14 + 0x17], 0
js 0x140090d27
jmp 0x140090d2f
mov rcx, rdi
call fcn.14009d26c
mov rsi, qword [rsp + 0x58]
test rsi, rsi
sete bl
mov rcx, qword [rsp + 0x148]
xor rcx, rsp
call fcn.14009f1f0
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
cmp word [rbx + rax*2 + 0xa], 0x65
jne 0x140090b61
cmp word [rbx + rax*2 + 0xc], 0x2d
jne 0x140090b61
cmp word [rbx + rax*2 + 0xe], 0x61
jne 0x140090b61
cmp word [rbx + rax*2 + 0x10], 0x72
jne 0x140090b61
cmp word [rbx + rax*2 + 0x12], 0x67
jne 0x140090b61
cmp word [rbx + rax*2 + 0x14], 0x75
jne 0x140090b61
cmp word [rbx + rax*2 + 0x16], 0x6d
jne 0x140090b61
cmp word [rbx + rax*2 + 0x18], 0x65
jne 0x140090b61
cmp word [rbx + rax*2 + 0x1a], 0x6e
jne 0x140090b61
cmp word [rbx + rax*2 + 0x1c], 0x74
jne 0x140090b61
lea rdx, [rsp + 0xe0]
mov rcx, qword [rsp + 0x30]
call fcn.1400eff30
mov ebx, 1
jmp 0x140090c95
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
mov rcx, qword [rsp + 0xe0]
call fcn.14009d26c
jmp 0x140090a09
int3
int3
int3
int3
int3
int3
int3
int3
mov rcx, qword [rsp + 0xc0]
call fcn.14009d26c
jmp 0x140090a62
int3
int3
int3
int3
int3
int3
xor eax, eax
jmp 0x1400901f9
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
xor eax, eax
mov qword [rsp + 0x38], rax
xor r14d, r14d
jmp 0x1400902fb
lea rcx, [rsp + 0x100]
call fcn.14009c5d0
jmp 0x140090413
mov rcx, qword [rsi]
call fcn.14009d26c
jmp 0x140090552
int3
lea rdx, [rsp + 0x6c]
mov rcx, rbx
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
jmp 0x1400901f9
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], rax
mov rcx, rdx
jmp 0x1400903ed