Function at 0x14002e59c
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x190
movaps xmmword [rsp + 0x180], xmm6
mov r15d, r9d
mov r14d, r8d
mov rdi, rdx
mov r12, rcx
mov rax, qword [0x14017e028]
xor rax, rsp
mov qword [rsp + 0x178], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x160], xmm0
movzx ecx, byte [rcx + 0x17]
mov rax, rcx
test cl, cl
jns 0x14002e5ee
mov rax, qword [r12 + 8]
mov ebp, 0x80070057
test rax, rax
je 0x14002eabe
mov rbx, r12
test cl, cl
jns 0x14002e607
mov rbx, qword [r12]
lea rdx, [rsp + 0xa8]
mov qword [rdx], rbx
mov qword [rdx + 8], rax
lea rbx, [rsp + 0x30]
mov rcx, rbx
call fcn.140087560
cmp byte [rbx + 0x17], 0
jns 0x14002e62e
mov rbx, qword [rsp + 0x30]
lea rdx, [rsp + 0x160]
mov rcx, rbx
call qword [sym.imp.ole32.dll_IIDFromString]
mov ebx, eax
cmp byte [rsp + 0x47], 0
jns 0x14002e652
mov rcx, qword [rsp + 0x30]
call fcn.14008d2a8
test ebx, ebx
js 0x14002eabe
lea rax, [0x14015d538]
lea rdx, [rsp + 0x98]
mov qword [rdx], rax
mov qword [rdx + 8], 3
lea rbp, [rsp + 0x30]
mov rcx, rbp
call fcn.140087470
movzx r9d, byte [rbp + 0x17]
test r9b, r9b
mov r11, r9
cmovs r11, qword [rbp + 8]
mov rcx, qword [rbp]
cmovs rbp, rcx
movzx r10d, byte [rdi + 0x17]
test r10b, r10b
js 0x14002e6b6
cmp r11, r10
setb r8b
mov rbx, r10
cmovb rbx, r11
mov rsi, rdi
jmp 0x14002e6cb
mov rsi, qword [rdi]
mov r10, qword [rdi + 8]
cmp r11, r10
setb r8b
mov rbx, r10
cmovb rbx, r11
test rbx, rbx
je 0x14002e6e5
xor eax, eax
movzx edx, word [rbp + rax*2]
cmp dx, word [rsi + rax*2]
jne 0x14002e6f6
inc rax
cmp rbx, rax
jne 0x14002e6d2
cmp r10, r11
movzx eax, r8b
mov esi, 0xffffffff
cmovae esi, eax
jmp 0x14002e6fb
mov esi, 1
test r9b, r9b
jns 0x14002e705
call fcn.14008d2a8
xorps xmm0, xmm0
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], 0
test esi, esi
jne 0x14002eaea
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x40], rax
movaps xmm0, xmmword [0x14015c320]
movaps xmmword [rsp + 0x30], xmm0
movzx eax, byte [r12 + 0x17]
test al, al
mov rcx, qword [r12]
cmovns rcx, r12
lea rdx, [rsp + 0xd0]
mov qword [rdx], rcx
cmovs rax, qword [r12 + 8]
mov qword [rdx + 8], rax
lea rbp, [rsp + 0x140]
mov rcx, rbp
call fcn.140087560
cmp byte [rbp + 0x17], 0
jns 0x14002e782
mov rbp, qword [rsp + 0x140]
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rbp
call fcn.1400cd909
cmp byte [rsp + 0x157], 0
jns 0x14002e7a9
mov rcx, qword [rsp + 0x140]
call fcn.14008d2a8
cmp byte [rdi + 0x17], 0
jns 0x14002e7b2
mov rdi, qword [rdi]
movabs r12, 0x7fffffffffffffef
cmp word [rdi], 0
je 0x14002e7f2
xor ebp, ebp
cmp word [rdi + rbp*2 + 2], 0
lea rbp, [rbp + 1]
jne 0x14002e7c4
cmp rbp, r12
ja 0x14002ed87
cmp rbp, 0xb
jae 0x14002e802
lea rax, [rsp + 0x140]
mov byte [rax + 0x17], bpl
test rbp, rbp
jne 0x14002e833
jmp 0x14002e7fe
lea rax, [rsp + 0x140]
mov byte [rax + 0x17], 0
xor ebp, ebp
jmp 0x14002e845
lea rbx, [rbp + 8]
and rbx, 0xfffffffffffffff8
lea rcx, [rbx + rbx]
call fcn.14008d2b8
mov qword [rsp + 0x140], rax
lea rcx, [r12 + 0x11]
or rcx, rbx
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x148], rbp
xor ecx, ecx
movzx edx, word [rdi + rcx*2]
mov word [rax + rcx*2], dx
inc rcx
cmp rbp, rcx
jne 0x14002e835
movzx ecx, byte [rsp + 0x47]
test cl, cl
cmovs rsi, qword [rsp + 0x30]
mov word [rax + rbp*2], 0
lea rdx, [rsp + 0xb8]
mov qword [rdx], rsi
cmovs rcx, qword [rsp + 0x38]
mov qword [rdx + 8], rcx
lea rsi, [rsp + 0x110]
mov rcx, rsi
call fcn.140087470
cmp byte [rsi + 0x17], 0
jns 0x14002e88b
mov rsi, qword [rsp + 0x110]
cmp word [rsi], 0
je 0x14002e8c1
xor edi, edi
cmp word [rsi + rdi*2 + 2], 0
lea rdi, [rdi + 1]
jne 0x14002e893
cmp rdi, r12
ja 0x14002ed94
cmp rdi, 0xb
jae 0x14002e8d1
lea rax, [rsp + 0x128]
mov byte [rax + 0x17], dil
test rdi, rdi
jne 0x14002e901
jmp 0x14002e8cd
lea rax, [rsp + 0x128]
mov byte [rax + 0x17], 0
xor edi, edi
jmp 0x14002e913
lea rbx, [rdi + 8]
and rbx, 0xfffffffffffffff8
lea rcx, [rbx + rbx]
call fcn.14008d2b8
mov qword [rsp + 0x128], rax
add r12, 0x11
or r12, rbx
mov qword [rsp + 0x138], r12
mov qword [rsp + 0x130], rdi
xor ecx, ecx
movzx edx, word [rsi + rcx*2]
mov word [rax + rcx*2], dx
inc rcx
cmp rdi, rcx
jne 0x14002e903
mov word [rax + rdi*2], 0
lea rsi, [rsp + 0x128]
lea rdx, [rsp + 0x140]
lea r9, [rsp + 0x80]
mov rcx, rsi
mov r8d, r15d
call fcn.14002eda2
mov ebp, eax
cmp byte [rsi + 0x17], 0
jns 0x14002e951
mov rcx, qword [rsp + 0x128]
call fcn.14008d2a8
cmp byte [rsp + 0x127], 0
jns 0x14002e968
mov rcx, qword [rsp + 0x110]
call fcn.14008d2a8
cmp byte [rsp + 0x47], 0
jns 0x14002e979
mov rcx, qword [rsp + 0x30]
call fcn.14008d2a8
test ebp, ebp
js 0x14002eaa7
movaps xmm0, xmmword [0x14015c320]
lea rsi, [rsp + 0x140]
movaps xmmword [rsi], xmm0
mov rcx, rsi
xor edx, edx
call fcn.140005e10
mov ecx, r14d
mov rdx, rsi
call fcn.14002d3a8
test eax, eax
js 0x14002ea98
lea rsi, [rsp + 0x128]
mov qword [rsi], 0
lea rax, [rsp + 0x80]
movzx ecx, byte [rax + 0x17]
test cl, cl
mov rbp, qword [rax]
cmovns rbp, rax
lea rdx, [rsp + 0x20]
mov qword [rdx], rbp
cmovs rcx, qword [rax + 8]
mov qword [rdx + 8], rcx
lea rdi, [rsp + 0x30]
mov rcx, rdi
call fcn.14010b1e0
lea rdx, [rsp + 0x140]
mov rcx, rdi
mov r8, rsi
call fcn.14002d491
mov ebp, eax
mov rcx, rdi
call fcn.14010abb0
test ebp, ebp
js 0x14002ea73
mov r14, qword [rsp + 0x1f0]
mov rbx, qword [rsp + 0x128]
mov qword [rsp + 0x128], 0
lea rdi, [rbx + 1]
cmp rdi, 2
jb 0x14002ea3e
call fcn.140041560
xor ebp, ebp
cmp qword [r14], rbx
je 0x14002ea73
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov rax, qword [r14]
inc rax
cmp rax, 2
jae 0x14002ed6e
cmp rdi, 2
jb 0x14002ea6b
mov qword [r14], rbx
call fcn.140041560
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [rsp + 0x128]
inc rax
cmp rax, 2
jb 0x14002ea9a
call fcn.140041560
mov rcx, qword [rsp + 0x128]
call fcn.140087ae0
jmp 0x14002ea9a
mov ebp, eax
lea rcx, [rsp + 0x140]
call fcn.140087980
cmp byte [rsp + 0x97], 0
jns 0x14002eabe
mov rcx, qword [rsp + 0x80]
call fcn.14008d2a8
mov rcx, qword [rsp + 0x178]
xor rcx, rsp
call fcn.14008fec0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x180]
add rsp, 0x190
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
movabs rbx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x40], rbx
movaps xmm6, xmmword [0x14015c320]
movaps xmmword [rsp + 0x30], xmm6
movzx eax, byte [r12 + 0x17]
test al, al
mov rcx, qword [r12]
cmovns rcx, r12
lea rdx, [rsp + 0x100]
mov qword [rdx], rcx
cmovs rax, qword [r12 + 8]
mov qword [rdx + 8], rax
lea rsi, [rsp + 0x140]
mov rcx, rsi
call fcn.140087560
cmp byte [rsi + 0x17], 0
jns 0x14002eb48
mov rsi, qword [rsp + 0x140]
lea rcx, [rsp + 0x30]
mov rdx, rsi
call fcn.1400cd909
cmp byte [rsp + 0x157], 0
jns 0x14002eb6c
mov rcx, qword [rsp + 0x140]
call fcn.14008d2a8
mov qword [rsp + 0x150], rbx
movaps xmmword [rsp + 0x140], xmm6
movzx eax, byte [rdi + 0x17]
test al, al
mov rcx, qword [rdi]
cmovns rcx, rdi
lea rdx, [rsp + 0xf0]
mov qword [rdx], rcx
cmovs rax, qword [rdi + 8]
mov qword [rdx + 8], rax
lea rsi, [rsp + 0x128]
mov rcx, rsi
call fcn.140087560
lea rdi, [rsp + 0xb8]
lea rdx, [rsp + 0x30]
mov rcx, rdi
mov r8w, 0x5c
call fcn.1400f494d
lea rdx, str.Commands
mov rcx, rdi
call fcn.140058ef4
movups xmm0, xmmword [rax]
lea rdi, [rsp + 0xd0]
movaps xmmword [rdi], xmm0
mov rcx, qword [rax + 0x10]
mov qword [rdi + 0x10], rcx
xor ebx, ebx
mov qword [rax + 0x10], rbx
xorps xmm6, xmm6
movups xmmword [rax], xmm6
mov rcx, rdi
mov dx, 0x5c
call fcn.140059310
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x120], rax
movaps xmm0, xmmword [rdi]
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rdi], xmm6
mov qword [rdi + 0x10], rbx
movzx r8d, byte [rsi + 0x17]
test r8b, r8b
jns 0x14002ec3c
mov r8, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x128]
lea rdi, [rsp + 0x110]
mov rcx, rdi
mov rdx, rsi
call fcn.140058d54
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x150], rcx
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x140], xmm0
movups xmmword [rax], xmm6
mov qword [rax + 0x10], rbx
cmp byte [rdi + 0x17], 0
jns 0x14002ec80
mov rcx, qword [rsp + 0x110]
call fcn.14008d2a8
cmp byte [rsp + 0xe7], 0
jns 0x14002ec97
mov rcx, qword [rsp + 0xd0]
call fcn.14008d2a8
cmp byte [rsp + 0xcf], 0
jns 0x14002ecae
mov rcx, qword [rsp + 0xb8]
call fcn.14008d2a8
cmp byte [rsp + 0x13f], 0
jns 0x14002ecc5
mov rcx, qword [rsp + 0x128]
call fcn.14008d2a8
lea rax, str.CommandLine
lea rdx, [rsp + 0xd0]
mov qword [rdx], rax
mov qword [rdx + 8], 0xb
lea rsi, [rsp + 0x128]
mov rcx, rsi
call fcn.140087470
lea rax, [rsp + 0x140]
movzx ecx, byte [rax + 0x17]
test cl, cl
mov rbp, qword [rax]
cmovns rbp, rax
lea rdx, [rsp + 0xb8]
mov qword [rdx], rbp
cmovs rcx, qword [rax + 8]
mov qword [rdx + 8], rcx
lea rdi, [rsp + 0x110]
mov rcx, rdi
call fcn.140087470
lea r9, [rsp + 0x80]
mov rcx, rdi
mov rdx, rsi
mov r8d, r15d
call fcn.14002eda2
mov ebp, eax
cmp byte [rdi + 0x17], 0
jns 0x14002ed53
mov rcx, qword [rsp + 0x110]
call fcn.14008d2a8
cmp byte [rsp + 0x157], 0
jns 0x14002e968
mov rcx, qword [rsp + 0x140]
jmp 0x14002e963
call fcn.140041560
mov rcx, qword [r14]
call fcn.140087ae0
mov qword [r14], 0
jmp 0x14002ea5d
lea rcx, [rsp + 0x140]
call fcn.1400bd3f0
lea rcx, [rsp + 0x128]
call fcn.1400bd3f0
int3