Function at 0x14002f6c0
Capabilities:
Check if file exists

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x210
mov qword [rsp + 0x140], 0xfffffffffffffffe
mov rax, qword [0x14007e090]
xor rax, rsp
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x90], r9
mov rdi, r8
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0x98], rdx
test r9, r9
je 0x14002f715
and dword [r9], 0
xor r15d, r15d
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], r15
mov rdx, rcx
lea rcx, [rsp + 0x70]
call fcn.140030d24
nop
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x88], r15
call qword [sym.imp.libcurl64.dll_curl_easy_init]
mov r12, rax
cmp rax, r15
jne 0x14002f7a5
lea r8d, [r15 + 0x10]
lea rdx, str.easy_init_failed
mov rcx, rdi
call fcn.1400043ec
nop
mov rcx, qword [rsp + 0x78]
cmp rcx, r15
je 0x14002f79e
or rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rcx + 0x10], eax
add eax, ebx
jne 0x14002f79e
mov rdi, qword [rsp + 0x78]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0x14], eax
add eax, ebx
jne 0x14002f79e
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + htons]
xor al, al
jmp 0x14002ffc5
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rbp + 0x70]
cmp rdi, qword [rbp + 0x78]
jbe 0x14002f7b9
call fcn.140042ffc
mov rax, qword [rbp + 0x58]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdi
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
add rdi, 0x60
mov r13, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
mov r14, qword [rbp + 0x78]
cmp qword [rbp + 0x70], r14
jbe 0x14002f7ef
call fcn.140042ffc
cmp r13, r15
je 0x14002f7fa
cmp r13, qword [rbp + 0x58]
je 0x14002f7ff
call fcn.140042ffc
cmp rbx, r14
je 0x14002f98d
cmp r13, r15
jne 0x14002f817
call fcn.140042ffc
mov r11, r15
jmp 0x14002f81b
mov r11, qword [r13]
cmp rbx, qword [r11 + 0x20]
jb 0x14002f826
call fcn.140042ffc
cmp byte [rbx], r15b
je 0x14002f881
cmp qword [rdi - 0x38], 0x10
jb 0x14002f838
mov rax, qword [rdi - 0x50]
jmp 0x14002f83c
lea rax, [rdi - 0x50]
cmp qword [rdi + 0x18], 0x10
jb 0x14002f848
mov r9, qword [rdi]
jmp 0x14002f84b
mov r9, rdi
mov dword [rsp + 0x30], reloc.WS2_32.dll_recvfrom
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov r8d, 0xa
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x80]
call qword [sym.imp.libcurl64.dll_curl_formadd]
jmp 0x14002f95f
cmp byte [rbp + 0x28], r15b
jne 0x14002f95f
cmp qword [rdi - 0x18], r15
jbe 0x14002f908
cmp qword [rdi - 0x38], 0x10
jb 0x14002f89e
mov rax, qword [rdi - 0x50]
jmp 0x14002f8a2
lea rax, [rdi - 0x50]
cmp qword [rdi - 0x10], 0x10
jb 0x14002f8af
mov r9, qword [rdi - 0x28]
jmp 0x14002f8b3
lea r9, [rdi - 0x28]
mov dword [rsp + 0x50], reloc.WS2_32.dll_recvfrom
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x40], 1
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], recvfrom
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], recvfrom
mov r8d, recvfrom
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x80]
call qword [sym.imp.libcurl64.dll_curl_formadd]
jmp 0x14002f95f
cmp qword [rdi - 0x38], 0x10
jb 0x14002f915
mov r9, qword [rdi - 0x50]
jmp 0x14002f919
lea r9, [rdi - 0x50]
mov dword [rsp + 0x40], reloc.WS2_32.dll_recvfrom
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], 6
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 4
mov r8d, 1
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x80]
call qword [sym.imp.libcurl64.dll_curl_formadd]
cmp r13, r15
jne 0x14002f96e
call fcn.140042ffc
mov r11, r15
jmp 0x14002f972
mov r11, qword [r13]
cmp rbx, qword [r11 + 0x20]
jb 0x14002f97d
call fcn.140042ffc
mov eax, 0x90
add rbx, rax
add rdi, rax
jmp 0x14002f7e0
lea rdx, str.Expect:
xor ecx, ecx
call qword [sym.imp.libcurl64.dll_curl_slist_append]
mov r14, rax
mov r13, qword [0x140084170]
mov rcx, qword [r13]
mov qword [rsp + 0x68], rcx
mov rcx, qword [0x140084140]
mov qword [rsp + 0x60], rcx
movaps xmm0, xmmword [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
mov rdi, qword [rsp + 0x60]
cmp rdi, r15
je 0x14002f9d5
cmp rdi, rcx
je 0x14002f9da
call fcn.140042ffc
mov rbx, qword [rsp + 0x68]
cmp rbx, r13
je 0x14002faf5
cmp rdi, r15
jne 0x14002f9f7
call fcn.140042ffc
mov r11, r15
jmp 0x14002f9fa
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14002fa05
call fcn.140042ffc
lea r8, [0x14006828c]
lea rdx, [rbx + 0x18]
lea rcx, [rsp + 0xf8]
call fcn.140029f18
mov r15, rax
test rdi, rdi
jne 0x14002fa2e
call fcn.140042ffc
xor edx, edx
jmp 0x14002fa31
mov rdx, qword [rdi]
cmp rbx, qword [rdx + 0x30]
jne 0x14002fa3c
call fcn.140042ffc
lea r8, [rbx + 0x40]
mov rdx, r15
lea rcx, [rsp + 0xd0]
call fcn.14002d040
cmp qword [rax + 0x20], 0x10
jb 0x14002fa5d
mov rdx, qword [rax + 8]
jmp 0x14002fa61
lea rdx, [rax + 8]
mov rcx, r14
call qword [sym.imp.libcurl64.dll_curl_slist_append]
mov r14, rax
cmp qword [rsp + 0xf0], 0x10
jb 0x14002fa85
mov rcx, qword [rsp + 0xd8]
call fcn.140042a98
mov qword [rsp + socket0], 0xf
xor r15d, r15d
mov qword [rsp + 0xe8], r15
mov byte [rsp + 0xd8], r15b
cmp qword [rsp + 0x118], 0x10
jb 0x14002fabc
mov rcx, qword [rsp + 0x100]
call fcn.140042a98
mov qword [rsp + 0x118], socket
mov qword [rsp + 0x110], r15
mov byte [rsp + 0x100], r15b
lea rcx, [rsp + 0x60]
call fcn.140004db8
mov r13, qword [0x140084170]
mov rcx, qword [0x140084140]
jmp 0x14002f9c6
mov r13d, recvfrom
mov qword [rsp + 0x1d0], r13
mov qword [rsp + 0x1c8], r15
mov byte [rsp + 0x1b8], r15b
or rbx, 0xffffffffffffffff
cmp byte [rbp + 0x28], r15b
je 0x14002fba5
lea rdx, str.Content_Type:_application_x_www_form_urlencoded
mov rcx, r14
call qword [sym.imp.libcurl64.dll_curl_slist_append]
mov r14, rax
lea rdx, [rbp + 0x88]
lea rcx, [rsp + 0x170]
call fcn.14003025c
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0xa8]
call fcn.14002f53c
nop
mov r9, rbx
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x1b0]
call fcn.140003f28
nop
cmp qword [rsp + 0xc8], 0x10
jb 0x14002fb8d
mov rcx, qword [rsp + 0xb0]
call fcn.140042a98
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0xc0], r15
mov byte [rsp + 0xb0], r15b
mov qword [rsp + 0x1f8], r13
mov qword [rsp + 0x1f0], r15
mov byte [rsp + 0x1e0], r15b
mov rax, qword [0x140083138]
cmp rax, r15
je 0x14002fc08
mov rdx, rbp
lea rcx, [rsp + 0x148]
call rax
nop
mov r9, rbx
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x1d8]
call fcn.140003f28
nop
cmp qword [rsp + 0x168], 0x10
jb 0x14002fc1e
mov rcx, qword [rsp + 0x150]
call fcn.140042a98
jmp 0x14002fc1e
mov r9, rbx
xor r8d, r8d
mov rdx, rbp
lea rcx, [rsp + 0x1d8]
call fcn.140003f28
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_reset]
lea r8, [rsp + 0x1e0]
cmp qword [rsp + 0x1f8], 0x10
cmovae r8, qword [rsp + 0x1e0]
mov edx, 0x2712
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
xor r8d, r8d
mov edx, 0x2714
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
mov edx, 0x4e
lea r8d, [rdx - 0x49]
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
lea r8, [0x14002ffe8]
mov edx, 0x4e2b
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
mov r8, qword [rsp + 0x98]
mov edx, 0x2711
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
mov r8, qword [rsp + 0x80]
mov edx, 0x2728
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
mov r8, r14
mov edx, 0x2727
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
lea r8, [0x1400667d2]
mov edx, 0x2776
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
cmp qword [rsp + 0x1c8], r15
je 0x14002fd0b
lea r8, [rsp + 0x1b8]
cmp qword [rsp + 0x1d0], 0x10
cmovae r8, qword [rsp + 0x1b8]
mov edx, 0x271f
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
cmp byte [0x1400837f0], r15b
je 0x14002fd3b
lea rcx, [0x1400837f0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
cmp eax, r15d
je 0x14002fd3b
lea r8, [0x1400837f0]
mov edx, 0x272f
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
cmp qword [rbp + 0x48], r15
je 0x14002fd60
cmp qword [rbp + 0x50], 0x10
jb 0x14002fd4e
mov r8, qword [rbp + 0x38]
jmp 0x14002fd52
lea r8, [rbp + 0x38]
mov edx, 0x2734
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
mov edx, 0x34
lea r8d, [rdx - 0x33]
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
cmp byte [0x14008298a], r15b
je 0x14002fd9b
xor r8d, r8d
lea edx, [r8 + 0x40]
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
xor r8d, r8d
lea edx, [r8 + 0x51]
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
cmp qword [0x1400801d0], r15
je 0x14002fdc9
lea r8, [0x1400801c0]
cmp qword [0x1400801d8], 0x10
cmovae r8, qword [0x1400801c0]
mov edx, 0x2751
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_setopt]
cmp qword [rbp + 0x20], 0x10
jb 0x14002fdd6
mov rbp, qword [rbp + 8]
jmp 0x14002fdda
add rbp, 8
mov qword [rsp + 0x120], r12
mov qword [rsp + 0x128], rbp
mov qword [rsp + 0x130], r15
mov qword [rsp + 0x138], r15
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_perform]
mov edi, eax
mov rcx, qword [rsp + 0x80]
cmp rcx, r15
je 0x14002fe18
call qword [sym.imp.libcurl64.dll_curl_formfree]
cmp r14, r15
je 0x14002fe26
mov rcx, r14
call qword [sym.imp.libcurl64.dll_curl_slist_free_all]
cmp edi, r15d
je 0x14002ff01
mov ecx, edi
call qword [sym.imp.libcurl64.dll_curl_easy_strerror]
mov rdx, rax
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, qword [rsp + 0xa0]
call fcn.1400043ec
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_cleanup]
nop
cmp qword [rsp + 0x1f8], 0x10
jb 0x14002fe7a
mov rcx, qword [rsp + 0x1e0]
call fcn.140042a98
mov qword [rsp + 0x1f8], r13
mov qword [rsp + 0x1f0], r15
mov byte [rsp + 0x1e0], r15b
cmp qword [rsp + 0x1d0], 0x10
jb 0x14002feaa
mov rcx, qword [rsp + 0x1b8]
call fcn.140042a98
mov qword [rsp + 0x1d0], r13
mov qword [rsp + 0x1c8], r15
mov byte [rsp + 0x1b8], r15b
mov rcx, qword [rsp + 0x78]
cmp rcx, r15
je 0x14002fefa
mov eax, ebx
lock xadd dword [rcx + 0x10], eax
add eax, ebx
jne 0x14002fefa
mov rdi, qword [rsp + 0x78]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0x14], eax
add eax, ebx
jne 0x14002fefa
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + htons]
xor al, al
jmp 0x14002ffc5
mov r15, qword [rsp + 0x90]
xor edi, edi
cmp r15, rdi
je 0x14002ff21
mov r8, r15
mov edx, 0x200002
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_getinfo]
mov rcx, r12
call qword [sym.imp.libcurl64.dll_curl_easy_cleanup]
nop
cmp qword [rsp + 0x1f8], 0x10
jb 0x14002ff43
mov rcx, qword [rsp + 0x1e0]
call fcn.140042a98
mov qword [rsp + 0x1f8], r13
mov qword [rsp + 0x1f0], rdi
mov byte [rsp + 0x1e0], dil
cmp qword [rsp + 0x1d0], 0x10
jb 0x14002ff73
mov rcx, qword [rsp + 0x1b8]
call fcn.140042a98
mov qword [rsp + 0x1d0], r13
mov qword [rsp + 0x1c8], rdi
mov byte [rsp + 0x1b8], dil
mov rcx, qword [rsp + 0x78]
cmp rcx, rdi
je 0x14002ffc3
mov eax, ebx
lock xadd dword [rcx + 0x10], eax
add eax, ebx
jne 0x14002ffc3
mov rdi, qword [rsp + 0x78]
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
mov ecx, ebx
lock xadd dword [rdi + 0x14], ecx
add ecx, ebx
jne 0x14002ffc3
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rcx]
call qword [rdx + htons]
mov al, 1
mov rcx, qword [rsp + 0x200]
xor rcx, rsp
call fcn.140042a40
add rsp, 0x210
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret