Function at 0x180036fc0
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.1800bd260
sub rsp, rax
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov rax, qword [0x1800ff050]
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.1800428a0
mov rcx, qword [rsp + 0x4b00]
cmp rcx, rbx
je 0x180037042
test rbx, rbx
je 0x18003702f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x4b00]
test rcx, rcx
je 0x18003703a
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 0x1800370bb
cmp word [rdi], r13w
je 0x1800370bb
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 0x1800370db
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 0x1800370fc
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 0x1800373a7
mov qword [rsp + 0x88], rbx
test rdi, rdi
je 0x180037172
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 0x180037150
jmp 0x18003717b
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 0x1800371ec
mov eax, r13d
mov dword [rsp + 0x50], eax
lea rdx, [0x180107f90]
cmp eax, 0x100
jae 0x1800371ec
movsxd rcx, eax
cmp qword [rdx + rcx*8], r13
jne 0x1800371e4
lea rax, [rsp + 0x80]
mov qword [rdx + rcx*8], rax
jmp 0x1800371ec
inc eax
mov dword [rsp + 0x50], eax
jmp 0x1800371c6
test sil, sil
je 0x1800373a7
xor edx, edx
lea rcx, [rsp + 0x80]
call fcn.180042bf0
test al, al
jne 0x18003721c
lea rcx, [rsp + 0x80]
call fcn.1800373e0
xor eax, eax
jmp 0x1800373ba
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.180041e10
test al, al
jne 0x180037282
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x180037264
call fcn.18006b22c
lea rcx, [rsp + 0x40]
call fcn.180012d00
lea rcx, [rsp + 0x80]
call fcn.1800373e0
xor eax, eax
jmp 0x1800373ba
cmp dword [rsp + 0x48], r13d
je 0x18003737d
cmp dword [rsp + 0x60], r13d
je 0x18003737d
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
mov rcx, qword [r12 + 0xb0]
test rcx, rcx
je 0x1800372cb
call fcn.18006aaac
mov qword [r12 + 0xb0], r13
mov dword [r12 + 0xb8], r13d
lea eax, [rdi + 1]
movsxd rsi, eax
mov eax, 2
mul rsi
cmovo rax, r14
lea rdx, [0x180106f48]
mov rcx, rax
call fcn.18006aaa4
mov rcx, rax
mov qword [r12 + 0xb0], rax
test rax, rax
jne 0x180037327
test rbx, rbx
je 0x180037309
mov rcx, rbx
call fcn.18006b22c
lea rcx, [rsp + 0x40]
call fcn.180012d00
lea rcx, [rsp + 0x80]
call fcn.1800373e0
xor eax, eax
jmp 0x1800373ba
lea rax, [rsi + rsi]
mov dword [r12 + 0xb8], eax
mov r8d, eax
xor edx, edx
call fcn.18006cf60
mov r8, rdi
add r8, r8
mov rdx, rbx
mov rcx, qword [r12 + 0xb0]
call fcn.18006c2d0
test rbx, rbx
je 0x180037360
mov rcx, rbx
call fcn.18006b22c
lea rcx, [rsp + 0x40]
call fcn.180012d00
lea rcx, [rsp + 0x80]
call fcn.1800373e0
nop
mov eax, r15d
jmp 0x1800373ba
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x18003738c
call fcn.18006b22c
lea rcx, [rsp + 0x40]
call fcn.180012d00
lea rcx, [rsp + 0x80]
call fcn.1800373e0
xor eax, eax
jmp 0x1800373ba
lea rcx, [rsp + 0x80]
call fcn.1800373e0
xor eax, eax
jmp 0x1800373ba
mov rcx, qword [rsp + 0x4b10]
xor rcx, rsp
call fcn.18006a4f0
add rsp, 0x4b20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret