Function at 0x14008f8e0
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x650
mov qword [rsp + 0x298], 0xfffffffffffffffe
mov r12, rdx
mov rsi, rcx
xor edi, edi
mov dword [rsp + 0x108], edi
call fcn.140010fb4
mov rcx, rax
test rax, rax
jne 0x14008f92a
mov ecx, 0x80004005
call fcn.140010d40
int3
mov rax, qword [rax]
call qword [rax + Ordinal_26]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x6a0], rbx
mov rax, qword [rsi + 0x18]
cmp dword [rax - 0x10], edi
jne 0x14008f963
lea rdx, [rsp + 0x6a0]
mov rcx, r12
call fcn.140010a98
nop
lea rdx, [rbx - 0x18]
or rsi, 0xffffffffffffffff
jmp 0x140090610
call fcn.140010fb4
mov rcx, rax
test rax, rax
jne 0x14008f97b
mov ecx, 0x80004005
call fcn.140010d40
int3
mov rax, qword [rax]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x6a8], rax
mov r9, qword [rsi + 0x28]
mov r8, qword [rsi + 0x18]
lea rdx, [0x1400bd11c]
lea rcx, [rsp + 0x6a8]
call fcn.14000da78
mov rbx, qword [rsp + 0x6a8]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x14008f9dc
lea rdx, [rsp + 0x6a0]
mov rcx, r12
call fcn.140010a98
nop
lea rdx, [rbx - 0x18]
or rsi, 0xffffffffffffffff
jmp 0x1400905ed
lea rcx, str.default
call fcn.140051300
mov r8d, eax
lea rdx, str.default
lea rcx, [rsp + 0x6a0]
call fcn.140010888
call fcn.140010fb4
mov rcx, rax
test rax, rax
jne 0x14008fa17
mov ecx, 0x80004005
call fcn.140010d40
int3
mov rax, qword [rax]
call qword [rax + Ordinal_26]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x6a8]
lea rcx, [rsp + 0xf0]
call fcn.140010a98
mov r8, rax
lea rdx, [rsp + 0xf8]
call fcn.14008efb4
nop
mov r8, qword [rax]
lea rdx, [0x1400bd164]
lea rcx, [rsp + 0x38]
call fcn.14000da78
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
or rsi, 0xffffffffffffffff
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x14008fa87
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
lea rcx, [rsp + 0x540]
call fcn.140011414
nop
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x550]
call fcn.1400114c4
nop
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rdi
xor r8d, r8d
xor edx, edx
call fcn.14000da34
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x540]
lea rcx, [rsp + 0x20]
call fcn.14000e38c
mov r15d, reloc.WS2_32.dll_ntohs
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xa0], rdi
mov byte [rsp + 0x90], dil
lea rcx, str.current
call fcn.140051300
mov r8, rax
lea rdx, str.current
lea rcx, [rsp + 0x90]
call fcn.140003f08
nop
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x60], rdi
mov byte [rsp + 0x50], dil
lea rbx, str.metaData
mov rcx, rbx
call fcn.140051300
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.140003f08
nop
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
call fcn.1400046a4
mov rcx, rax
call fcn.14000dd58
lea rdx, [rsp + 0x90]
mov rcx, rax
call fcn.1400046a4
mov rcx, rax
call fcn.14000e16c
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0xc0], rdi
mov byte [rsp + 0xb0], dil
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.140003ae4
nop
lea rcx, [rsp + 0xb0]
call fcn.14000dc1c
mov qword [rsp + 0xe8], r15
mov qword [rsp + 0xe0], rdi
mov byte [rsp + 0xd0], dil
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.140003ae4
nop
mov rdx, qword [rsp + 0xc8]
lea r14d, [r15 - 0xe]
cmp rdx, 0x10
jb 0x14008fc03
inc rdx
mov r8d, r14d
mov rcx, qword [rsp + 0xb0]
call fcn.140003d58
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0xc0], rdi
mov byte [rsp + 0xb0], dil
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x14008fc36
inc rdx
mov r8, r14
mov rcx, qword [rsp + 0x50]
call fcn.140003d58
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x60], rdi
mov byte [rsp + 0x50], dil
mov rdx, qword [rsp + 0xa8]
cmp rdx, 0x10
jb 0x14008fc66
inc rdx
mov r8, r14
mov rcx, qword [rsp + 0x90]
call fcn.140003d58
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xa0], rdi
mov byte [rsp + 0x90], dil
cmp qword [rsp + 0xe0], rdi
jne 0x14008fdb7
mov qword [rsp + 0x278], r15
mov qword [rsp + 0x270], rdi
mov byte [rsp + 0x260], dil
lea rcx, str.searchDefault
call fcn.140051300
mov r8, rax
lea rdx, str.searchDefault
lea rcx, [rsp + 0x260]
call fcn.140003f08
nop
mov qword [rsp + 0x258], r15
mov qword [rsp + 0x250], rdi
mov byte [rsp + 0x240], dil
mov rcx, rbx
call fcn.140051300
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x240]
call fcn.140003f08
nop
lea rdx, [rsp + 0x240]
lea rcx, [rsp + 0x20]
call fcn.1400046a4
mov rcx, rax
call fcn.14000dd58
lea rdx, [rsp + 0x260]
mov rcx, rax
call fcn.1400046a4
mov rcx, rax
call fcn.14000e16c
mov qword [rsp + 0x238], r15
mov qword [rsp + 0x230], rdi
mov byte [rsp + 0x220], dil
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x220]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x220]
call fcn.14000dc1c
lea rcx, [rsp + 0xd0]
cmp rcx, rax
je 0x14008fd8e
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x220]
call fcn.140005c94
nop
lea rcx, [rsp + 0x240]
call fcn.140003a04
nop
lea rcx, [rsp + 0x260]
call fcn.140003a04
lea rdx, str.engines
lea rcx, [rsp + 0x2a0]
call fcn.1400039b4
nop
lea rdx, [rsp + 0x2a0]
lea rcx, [rsp + 0x20]
call fcn.1400046a4
mov rcx, rax
call fcn.14000de64
mov rbx, rax
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x2a0]
call fcn.140003a04
lea rdx, [rsp + 0x128]
mov rcx, rbx
call fcn.1400113e0
lea r13, vtable.std::ios_base.0
mov r15, qword [rsp + 0x138]
lea rdx, [rsp + 0x3c0]
mov rcx, rbx
call fcn.1400047f4
cmp r15, qword [rax + 0x10]
setne al
test al, al
je 0x14009054b
mov rax, qword [rsp + 0x128]
test rax, rax
mov r8, rdi
je 0x14008fe4c
mov r8, qword [rax]
mov rcx, qword [r8 + 0x10]
sub rcx, r14
mov rax, r15
shr rax, 1
and rcx, rax
mov rdx, r15
and rdx, r14
mov rax, qword [r8 + 8]
mov rcx, qword [rax + rcx*8]
lea rcx, [rcx + rdx*8]
call fcn.14000dd58
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140006d3c
nop
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x2e0]
call fcn.14000dbec
nop
lea rdx, str._name
lea rcx, [rsp + 0x2c0]
call fcn.1400039b4
nop
lea rdx, [rsp + 0x2c0]
lea rcx, [rsp + 0x40]
call fcn.1400046a4
mov rcx, rax
call fcn.14000e16c
mov qword [rsp + 0x158], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x150], rdi
mov byte [rsp + 0x140], dil
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x140]
call fcn.140003ae4
lea rdx, [rsp + 0x2e0]
lea rcx, [rsp + 0x140]
call fcn.14000dc24
mov bl, al
lea rcx, [rsp + 0x140]
call fcn.140005c94
nop
lea rcx, [rsp + 0x2c0]
call fcn.140003a04
nop
lea rcx, [rsp + 0x2e0]
call fcn.140005c94
test bl, bl
je 0x140090519
lea rcx, [rsp + 0x440]
call fcn.140011414
nop
lea rdx, str._urls
lea rcx, [rsp + 0x300]
call fcn.1400039b4
nop
lea rdx, [rsp + 0x300]
lea rcx, [rsp + 0x40]
call fcn.1400046a4
mov rcx, rax
call fcn.14000de64
mov rbx, rax
mov qword [rsp + 0x100], rax
lea rcx, [rsp + 0x300]
call fcn.140003a04
lea rdx, [rsp + 0x110]
mov rcx, rbx
call fcn.1400113e0
mov r9, qword [rsp + 0x120]
lea rdx, [rsp + 0x3d8]
mov rcx, rbx
call fcn.1400047f4
cmp r9, qword [rax + 0x10]
setne al
test al, al
je 0x140090491
lea rdx, [rsp + 0x3f0]
call fcn.1400113e0
cmp r9, qword [rax + 0x10]
setne al
test al, al
je 0x140090000
lea rdx, [0x1400bdcb0]
lea rcx, [rsp + 0x450]
call fcn.1400114c4
mov r9, qword [rsp + 0x120]
mov rax, qword [rsp + 0x110]
test rax, rax
mov r8, rdi
je 0x140090013
mov r8, qword [rax]
mov rcx, qword [r8 + 0x10]
sub rcx, r14
mov rax, r9
shr rax, 1
and rcx, rax
mov rdx, r9
and rdx, r14
mov rax, qword [r8 + 8]
mov rcx, qword [rax + rcx*8]
lea rcx, [rcx + rdx*8]
call fcn.14000dd58
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.140006d3c
nop
lea rdx, str.template
lea rcx, [rsp + 0x320]
call fcn.1400039b4
nop
lea rdx, [rsp + 0x320]
lea rcx, [rsp + 0x80]
call fcn.1400046a4
mov rcx, rax
call fcn.14000e16c
mov qword [rsp + 0x218], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x210], rdi
mov byte [rsp + 0x200], dil
mov r9, rsi
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x200]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x200]
call fcn.14000dc1c
mov rbx, rax
mov qword [rsp + 0x1f0], rdi
mov qword [rsp + 0x1f8], rdi
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x1e0]
call fcn.140003dc4
mov r9, rsi
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x1e0]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x200]
call fcn.140005c94
nop
lea rcx, [rsp + 0x320]
call fcn.140003a04
lea rdx, [rsp + 0x1e0]
lea rcx, [rsp + 0x450]
call fcn.1400116d8
lea rdx, str.params
lea rcx, [rsp + 0x340]
call fcn.1400039b4
nop
lea rdx, [rsp + 0x340]
lea rcx, [rsp + 0x80]
call fcn.1400046a4
mov rcx, rax
call fcn.14000de64
mov r13, rax
lea rcx, [rsp + 0x340]
call fcn.140003a04
lea rdx, [rsp + 0x280]
mov rcx, r13
call fcn.1400113e0
mov r15, qword [rsp + 0x290]
lea rdx, [rsp + 0x420]
mov rcx, r13
call fcn.1400047f4
cmp r15, qword [rax + 0x10]
setne al
test al, al
je 0x140090440
lea rdx, [rsp + 0x408]
call fcn.1400113e0
cmp r15, qword [rax + 0x10]
sete al
lea rcx, [rsp + 0x450]
test al, al
je 0x1400901d0
lea rdx, [0x1400bdccc]
call fcn.1400114c4
jmp 0x1400901dc
lea rdx, [0x1400bdcd0]
call fcn.1400114c4
mov rax, qword [rsp + 0x280]
test rax, rax
mov r8, rdi
je 0x1400901ef
mov r8, qword [rax]
mov rcx, qword [r8 + 0x10]
sub rcx, r14
mov rax, r15
shr rax, 1
and rcx, rax
mov rdx, r15
and rdx, r14
mov rax, qword [r8 + 8]
mov rcx, qword [rax + rcx*8]
lea rcx, [rcx + rdx*8]
call fcn.14000dd58
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140006d3c
nop
lea rdx, str.name
lea rcx, [rsp + 0x360]
call fcn.1400039b4
nop
lea rdx, [rsp + 0x360]
lea rcx, [rsp + 0x70]
call fcn.1400046a4
mov rcx, rax
call fcn.14000e16c
mov rbx, rax
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x178], rdi
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x160]
call fcn.140003dc4
mov r9, rsi
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x160]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x160]
call fcn.14000dc1c
mov rbx, rax
mov qword [rsp + 0x1d0], rdi
mov qword [rsp + 0x1d8], rdi
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x1c0]
call fcn.140003dc4
mov r9, rsi
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x1c0]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x160]
call fcn.140005c94
nop
lea rcx, [rsp + 0x360]
call fcn.140003a04
lea rdx, str.value
lea rcx, [rsp + 0x380]
call fcn.1400039b4
nop
lea rdx, [rsp + 0x380]
lea rcx, [rsp + 0x70]
call fcn.1400046a4
mov rcx, rax
call fcn.14000e16c
mov rbx, rax
mov qword [rsp + 0x190], rdi
mov qword [rsp + 0x198], rdi
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x180]
call fcn.140003dc4
mov r9, rsi
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x180]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x180]
call fcn.14000dc1c
mov rbx, rax
mov qword [rsp + 0x1b0], rdi
mov qword [rsp + 0x1b8], rdi
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x1a0]
call fcn.140003dc4
mov r9, rsi
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x1a0]
call fcn.140003ae4
nop
lea rcx, [rsp + 0x180]
call fcn.140005c94
nop
lea rcx, [rsp + 0x380]
call fcn.140003a04
lea rdx, [rsp + 0x1c0]
lea rcx, [rsp + 0x450]
call fcn.1400116d8
lea rdx, [0x1400bdce4]
mov rcx, rax
call fcn.1400114c4
lea rdx, [rsp + 0x1a0]
mov rcx, rax
call fcn.1400116d8
nop
lea rcx, [rsp + 0x1a0]
call fcn.140003a04
nop
lea rcx, [rsp + 0x1c0]
call fcn.140003a04
nop
lea rcx, [rsp + 0x70]
call fcn.14000a500
mov r8d, gethostname
mov rdx, r14
mov rcx, qword [rsp + 0x70]
call fcn.140003d58
add r15, r14
mov qword [rsp + 0x290], r15
jmp 0x140090183
lea rcx, [rsp + 0x1e0]
call fcn.140003a04
nop
lea rcx, [rsp + 0x80]
call fcn.14000a500
mov r8d, gethostname
mov rdx, r14
mov rcx, qword [rsp + 0x80]
call fcn.140003d58
mov r9, qword [rsp + 0x120]
add r9, r14
mov qword [rsp + 0x120], r9
mov rbx, qword [rsp + 0x100]
jmp 0x14008ffad
lea rdx, [rsp + 0x3a0]
lea rcx, [rsp + 0x440]
call fcn.1400113f4
mov rbx, rax
cmp qword [rax + 0x18], 0x10
jb 0x1400904b3
mov rbx, qword [rax]
test rbx, rbx
jne 0x1400904bc
mov eax, edi
jmp 0x1400904c4
mov rcx, rbx
call fcn.140051300
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x6a0]
call fcn.140010888
nop
lea rcx, [rsp + 0x3a0]
call fcn.140003a04
nop
lea rcx, [rsp + 0x4d8]
call fcn.140007100
nop
lea r13, vtable.std::ios_base.0
mov qword [rsp + 0x4d8], r13
lea rcx, [rsp + 0x4d8]
call fcn.14004aea8
nop
mov r15, qword [rsp + 0x138]
lea rcx, [rsp + 0x40]
call fcn.14000a500
mov r8d, gethostname
mov rdx, r14
mov rcx, qword [rsp + 0x40]
call fcn.140003d58
add r15, r14
mov qword [rsp + 0x138], r15
mov rbx, qword [rsp + 0x30]
jmp 0x14008fe1a
lea rcx, [rsp + 0xd0]
call fcn.140003a04
nop
lea rcx, [rsp + 0x20]
call fcn.14000a500
mov r8d, gethostname
mov rdx, r14
mov rcx, qword [rsp + 0x20]
call fcn.140003d58
nop
jmp 0x14009058c
lea rdx, [rsp + 0x6a0]
mov rcx, r12
call fcn.140010a98
nop
lea rcx, [rsp + 0x5d8]
call fcn.140007100
nop
mov qword [rsp + 0x5d8], r13
lea rcx, [rsp + 0x5d8]
call fcn.14004aea8
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x1400905e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rsp + 0x6a8]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x140090604
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rsp + 0x6a0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, esi
test eax, eax
jg 0x140090626
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, r12
add rsp, 0x650
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret