Function at 0x18002a5e0
Capabilities:
Check if file exists

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x4b20
call fcn.1800ca220
sub rsp, rax
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov rax, qword [0x18010f050]
xor rax, rsp
mov qword [rsp + 0x4b10], rax
mov rbx, r8
mov rdi, rdx
mov r12, rcx
xor edx, edx
lea rcx, [rsp + 0x80]
call fcn.180041570
mov rcx, qword [rsp + 0x4b00]
cmp rcx, rbx
je 0x18002a662
test rbx, rbx
je 0x18002a64f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x4b00]
test rcx, rcx
je 0x18002a65a
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov qword [rsp + 0x4b00], rbx
xor al, al
xor r13d, r13d
mov dword [rsp + 0xca0], r13d
movzx eax, al
mov r15d, 1
cmp byte [rsp + 0x9e], r13b
cmovne eax, r15d
mov dword [rsp + 0x54], r15d
mov r8d, r15d
mov ecx, 3
test al, al
cmovne r8d, ecx
mov dword [rsp + 0x54], r8d
mov eax, 0x8000000
cmp byte [rsp + 0x9d], r13b
cmovne eax, r13d
test rdi, rdi
je 0x18002a6db
cmp word [rdi], r13w
je 0x18002a6db
mov qword [rsp + 0x30], r13
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]
mov rbx, rax
jmp 0x18002a6fb
mov qword [rsp + 0x30], r13
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 rbx, 0xffffffffffffffff
jne 0x18002a71c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rsp + 0xca0]
cmp eax, 2
cmove ecx, r15d
mov dword [rsp + 0xca0], ecx
mov byte [rsp + 0x9a], r13b
mov dword [rsp + 0x94], r13d
mov byte [rsp + 0x98], r13b
cmp rbx, 0xffffffffffffffff
setne sil
test sil, sil
je 0x18002a9c7
mov qword [rsp + 0x88], rbx
test rdi, rdi
je 0x18002a792
mov rcx, rdi
mov qword [rsp + 0x68], rcx
lea rdx, [rsp + 0x4a0]
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 + 0x68], rcx
test ax, ax
jne 0x18002a770
jmp 0x18002a79b
mov word [rsp + 0x4a0], r13w
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x1000000
lea rax, [rsp + 0x9f]
mov qword [rsp + 0x20], rax
or r14, 0xffffffffffffffff
mov r9d, r14d
mov r8, rdi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp qword [rsp + 0x88], r14
je 0x18002a80c
mov eax, r13d
mov dword [rsp + 0x50], eax
lea rdx, [0x1801182d0]
cmp eax, 0x100
jae 0x18002a80c
movsxd rcx, eax
cmp qword [rdx + rcx*8], r13
jne 0x18002a804
lea rax, [rsp + 0x80]
mov qword [rdx + rcx*8], rax
jmp 0x18002a80c
inc eax
mov dword [rsp + 0x50], eax
jmp 0x18002a7e6
test sil, sil
je 0x18002a9c7
xor edx, edx
lea rcx, [rsp + 0x80]
call fcn.1800418c0
test al, al
jne 0x18002a83c
lea rcx, [rsp + 0x80]
call fcn.18002aa00
xor eax, eax
jmp 0x18002a9da
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x4c], r13d
mov qword [rsp + 0x58], r13
mov dword [rsp + 0x60], r13d
mov dword [rsp + 0x64], r13d
lea r8, [rsp + 0x58]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x80]
call fcn.180040b10
test al, al
jne 0x18002a8a2
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x18002a884
call fcn.1800777ac
lea rcx, [rsp + 0x40]
call fcn.180012e60
lea rcx, [rsp + 0x80]
call fcn.18002aa00
xor eax, eax
jmp 0x18002a9da
cmp dword [rsp + 0x48], r13d
je 0x18002a99d
cmp dword [rsp + 0x60], r13d
je 0x18002a99d
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
mov rcx, qword [r12 + 0xe8]
test rcx, rcx
je 0x18002a8eb
call fcn.18007702c
mov qword [r12 + 0xe8], r13
mov dword [r12 + 0xf0], r13d
lea eax, [rdi + 1]
movsxd rsi, eax
mov eax, 2
mul rsi
cmovo rax, r14
lea rdx, [0x1801171e8]
mov rcx, rax
call fcn.180077024
mov rcx, rax
mov qword [r12 + 0xe8], rax
test rax, rax
jne 0x18002a947
test rbx, rbx
je 0x18002a929
mov rcx, rbx
call fcn.1800777ac
lea rcx, [rsp + 0x40]
call fcn.180012e60
lea rcx, [rsp + 0x80]
call fcn.18002aa00
xor eax, eax
jmp 0x18002a9da
lea rax, [rsi + rsi]
mov dword [r12 + 0xf0], eax
mov r8d, eax
xor edx, edx
call fcn.1800795c0
mov r8, rdi
add r8, r8
mov rdx, rbx
mov rcx, qword [r12 + 0xe8]
call fcn.1800785c0
test rbx, rbx
je 0x18002a980
mov rcx, rbx
call fcn.1800777ac
lea rcx, [rsp + 0x40]
call fcn.180012e60
lea rcx, [rsp + 0x80]
call fcn.18002aa00
nop
mov eax, r15d
jmp 0x18002a9da
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x18002a9ac
call fcn.1800777ac
lea rcx, [rsp + 0x40]
call fcn.180012e60
lea rcx, [rsp + 0x80]
call fcn.18002aa00
xor eax, eax
jmp 0x18002a9da
lea rcx, [rsp + 0x80]
call fcn.18002aa00
xor eax, eax
jmp 0x18002a9da
mov rcx, qword [rsp + 0x4b10]
xor rcx, rsp
call fcn.180076a70
add rsp, 0x4b20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret