Function at 0x180015d70
Capabilities:
Check if file exists

Disassembly:
push rsi
push rdi
push r12
push r14
push r15
mov eax, 0x4b30
call fcn.1800ac0d0
sub rsp, rax
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x4b70], rbx
mov rax, qword [0x1800eb008]
xor rax, rsp
mov qword [rsp + 0x4b20], rax
mov rbx, r8
mov rdi, rdx
mov r14, rcx
lea rcx, [rsp + 0x90]
call fcn.180027d40
mov rcx, qword [rsp + 0x4b10]
cmp rcx, rbx
je 0x180015df8
test rbx, rbx
je 0x180015de5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x4b10]
mov qword [rsp + 0x4b10], rbx
test rcx, rcx
je 0x180015df8
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
xor al, al
xor esi, esi
mov dword [rsp + 0xcb0], esi
movzx eax, al
mov r15d, 1
cmp byte [rsp + 0xae], sil
cmovne eax, r15d
mov dword [rsp + 0x68], 0x80000000
mov dword [rsp + 0x50], r15d
mov r8d, r15d
mov ecx, 3
test al, al
cmovne r8d, ecx
mov dword [rsp + 0x50], r8d
mov eax, 0x8000000
cmp byte [rsp + 0xad], sil
cmovne eax, esi
test rdi, rdi
je 0x180015e72
cmp word [rdi], si
je 0x180015e72
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
xor r9d, r9d
mov edx, 0x80000000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
jmp 0x180015e8f
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
xor r9d, r9d
mov edx, 0x80000000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x180015eb3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rsp + 0xcb0]
cmp eax, 2
cmove ecx, r15d
mov dword [rsp + 0xcb0], ecx
mov byte [rsp + 0xaa], sil
mov dword [rsp + 0xa4], esi
mov byte [rsp + 0xa8], sil
cmp rbx, 0xffffffffffffffff
je 0x18001614d
mov qword [rsp + 0x98], rbx
test rdi, rdi
je 0x180015f22
mov rcx, rdi
mov qword [rsp + 0x78], rcx
lea rdx, [rsp + 0x4b0]
mov qword [rsp + 0x70], rdx
nop word [rax + rax]
movzx eax, word [rcx]
mov word [rdx], ax
add rdx, 2
mov qword [rsp + 0x70], rdx
movzx eax, word [rcx]
add rcx, 2
mov qword [rsp + 0x78], rcx
test ax, ax
jne 0x180015f00
jmp 0x180015f2a
mov word [rsp + 0x4b0], si
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], 0x1000000
lea rax, [rsp + 0xaf]
mov qword [rsp + 0x20], rax
or r12, 0xffffffffffffffff
mov r9d, r12d
mov r8, rdi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp qword [rsp + 0x98], r12
je 0x180015f9a
mov eax, esi
lea r8, [0x1800f0ae0]
mov dword [rsp + 0x54], eax
movsxd rcx, eax
cmp rcx, 0x100
jae 0x180015f9a
lea rdx, [r8 + rcx*8]
cmp qword [rdx], rsi
jne 0x180015f96
lea rax, [rsp + 0x90]
mov qword [rdx], rax
jmp 0x180015f9a
inc eax
jmp 0x180015f70
cmp rbx, 0xffffffffffffffff
je 0x18001614d
lea rcx, [rsp + 0x90]
call fcn.180028000
lea rcx, [rsp + 0x90]
test al, al
jne 0x180015fc9
call fcn.180016190
xor eax, eax
jmp 0x180016160
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rsi
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x40]
call fcn.180027390
test al, al
jne 0x180016022
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180015fff
call fcn.18009a6dc
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18001600e
call fcn.18009a6dc
lea rcx, [rsp + 0x90]
call fcn.180016190
xor eax, eax
jmp 0x180016160
cmp dword [rsp + 0x48], esi
je 0x18001611e
cmp dword [rsp + 0x60], esi
je 0x18001611e
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
mov rcx, qword [r14 + 0xe8]
test rcx, rcx
je 0x180016066
call fcn.18007294c
mov qword [r14 + 0xe8], rsi
mov dword [r14 + 0xf0], esi
lea esi, [rdi + 1]
movsxd rcx, esi
mov eax, 2
mul rcx
cmovo rax, r12
lea rdx, [0x1800ece24]
mov rcx, rax
call fcn.180072944
mov rcx, rax
mov qword [r14 + 0xe8], rax
test rax, rax
jne 0x1800160c6
test rbx, rbx
je 0x1800160a3
mov rcx, rbx
call fcn.18009a6dc
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1800160b2
call fcn.18009a6dc
lea rcx, [rsp + 0x90]
call fcn.180016190
xor eax, eax
jmp 0x180016160
lea eax, [rsi + rsi]
mov dword [r14 + 0xf0], eax
mov r8d, eax
xor edx, edx
call fcn.18008c000
mov r8, rdi
add r8, r8
mov rdx, rbx
mov rcx, qword [r14 + 0xe8]
call fcn.18008b7d0
test rbx, rbx
je 0x1800160fc
mov rcx, rbx
call fcn.18009a6dc
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18001610b
call fcn.18009a6dc
lea rcx, [rsp + 0x90]
call fcn.180016190
nop
mov eax, r15d
jmp 0x180016160
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x18001612d
call fcn.18009a6dc
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x18001613c
call fcn.18009a6dc
lea rcx, [rsp + 0x90]
call fcn.180016190
xor eax, eax
jmp 0x180016160
lea rcx, [rsp + 0x90]
call fcn.180016190
xor eax, eax
jmp 0x180016160
mov rcx, qword [rsp + 0x4b20]
xor rcx, rsp
call fcn.180072920
mov rbx, qword [rsp + 0x4b70]
add rsp, 0x4b30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret