Function at 0x18001a5d4
Capabilities:
Check internet connectivity via wininet
Connect to http server
Create http request
Get file size
Parse url
Read and send data from client to server
Read file on windows
Send data
Send http request

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x14c8]
mov eax, 0x15a0
call fcn.180036580
sub rsp, rax
mov rax, qword [0x18004a010]
xor rax, rsp
mov qword [rbp + 0x1490], rax
mov r14, qword [rdx + 0x10]
xor ecx, ecx
mov qword [rbp - 0x38], r14
mov rdi, rdx
call qword [sym.imp.WININET.dll_InternetAttemptConnect]
mov ebx, eax
xor eax, eax
test ebx, ebx
jne 0x18001ad7c
mov qword [rsp + 0x30], rax
lea r8d, [rax + 1]
mov dword [rsp + 0x28], 0x80
lea rcx, [0x180176580]
xor r9d, r9d
mov dword [rsp + 0x20], 3
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
or rsi, 0xffffffffffffffff
mov qword [rbp - 0x50], rax
mov r15, rax
cmp rax, rsi
je 0x18001ad68
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r13d, 0x19000
mov dword [rsp + 0x40], eax
cmp eax, r13d
cmovb r13d, eax
mov ecx, r13d
call fcn.180021c94
mov qword [rbp - 0x48], rax
mov r12, rax
test rax, rax
je 0x18001ad4e
xor edx, edx
lea r8d, [rbx + 0x68]
lea rcx, [rbp + 0x10]
call fcn.180023140
mov ecx, 0x80
mov dword [rbp + 0x10], 0x68
lea rax, [rbp + 0x290]
mov dword [rbp + 0x40], ecx
mov qword [rbp + 0x28], rax
lea r9, [rbp + 0x10]
lea rax, [rbp + 0x90]
mov dword [rbp + 0x50], ecx
mov qword [rbp + 0x38], rax
lea rcx, [0x180176bc0]
lea rax, [rbp + 0x190]
mov dword [rbp + 0x30], 0x100
mov qword [rbp + 0x48], rax
xor edx, edx
lea rax, [rbp + 0x490]
mov dword [rbp + 0x60], 0x800
mov r8d, 0x90000000
mov qword [rbp + 0x58], rax
call qword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
je 0x18001ad32
cmp dword [rbp + 0x24], 3
jne 0x18001ad21
xor r9d, r9d
mov dword [rsp + 0x20], 0x10000000
xor r8d, r8d
lea edx, [rbx + 1]
lea rcx, str.BugTrap_for_Win64_x64
call qword [sym.imp.WININET.dll_InternetOpenW]
mov qword [rbp - 0x40], rax
test rax, rax
je 0x18001ad32
lea rdx, [0x18001a510]
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
movzx ecx, word [rbp + 0x34]
lea rax, [rbp + 0x90]
test cx, cx
mov qword [rsp + 0x38], rdi
lea r8d, [rbx + 0x50]
mov dword [rsp + 0x30], 0x4000200
cmovne r8w, cx
mov dword [rsp + 0x28], 3
movzx ecx, word [rbp + 0x90]
lea rdx, [rbp + 0x290]
neg cx
mov dword [rdi + 0x24], 1
sbb r9, r9
and r9, rax
movzx eax, word [rbp + 0x190]
neg ax
lea rax, [rbp + 0x190]
sbb rcx, rcx
and rcx, rax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rbp - 0x40]
call qword [sym.imp.WININET.dll_InternetConnectW]
xor ecx, ecx
mov qword [rbp - 0x30], rax
test rax, rax
je 0x18001acfc
mov qword [rsp + 0x38], rdi
lea r8, [rbp + 0x490]
mov dword [rsp + 0x30], 0x4000200
lea rdx, str.POST
mov qword [rsp + 0x28], rcx
xor r9d, r9d
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov dword [rdi + 0x24], 2
call qword [sym.imp.WININET.dll_HttpOpenRequestW]
mov r12, rax
test rax, rax
je 0x18001acd3
mov edx, 0x1000
lea rcx, [rsp + 0x60]
call fcn.180003088
lea rax, [rsp + 0x60]
mov r8d, 0xb8
mov qword [rsp + 0x48], rax
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_protocolSignature__r_nContent_Type:_text_plain__charset_utf_8__r_nContent_Transfer_Encoding:_8bit_r_n_r_n
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x70]
mov rax, qword [rsp + 0x70]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea r8d, [rbx + 4]
lea rdx, str.BT01
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea r8d, [rbx + 2]
lea rdx, [0x180042c3c]
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_messageType__r_nContent_Type:_text_plain__charset_utf_8__r_nContent_Transfer_Encoding:_8bit_r_n_r_n
mov r8d, 0xb2
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
lea r9d, [rbx + 0xa]
lea r8d, [rbx + 0x10]
lea rdx, [rbp + 0x80]
lea ecx, [rbx + 1]
call fcn.180026194
lea rax, [rbp + 0x80]
mov r8, rsi
xor r15d, r15d
inc r8
cmp byte [rax + r8], r15b
jne 0x18001a8d5
mov rax, qword [rsp + 0x70]
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, [0x180042c3c]
mov r8d, 2
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_messageFlags__r_nContent_Type:_text_plain__charset_utf_8__r_nContent_Transfer_Encoding:_8bit_r_n_r_n
mov r8d, 0xb3
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
mov r9d, 0xa
lea rdx, [rbp + 0x80]
xor ecx, ecx
lea r8d, [r9 + 6]
call fcn.180026194
lea rax, [rbp + 0x80]
inc rsi
cmp byte [rax + rsi], r15b
jne 0x18001a945
mov rax, qword [rsp + 0x70]
lea rdx, [rbp + 0x80]
mov r8, rsi
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea r15, [0x180042c3c]
mov esi, 2
lea rcx, [rsp + 0x70]
mov r8d, esi
mov rdx, r15
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_appName__r_nContent_Type:_text_plain__charset_utf_8__r_nContent_Transfer_Encoding:_8bit_r_n_r_n
mov r8d, 0xae
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
lea rdx, [0x180176fe0]
lea rcx, [rsp + 0x48]
call fcn.18001cc98
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
mov r8d, esi
mov rdx, r15
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_appVersion__r_nContent_Type:_text_plain__charset_utf_8__r_nContent_Transfer_Encoding:_8bit_r_n_r_n
mov r8d, 0xb1
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
lea rdx, [0x180176dd0]
lea rcx, [rsp + 0x48]
call fcn.18001cc98
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
mov r8d, esi
mov rdx, r15
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_reportFileExtension__r_nContent_Type:_text_plain__charset_utf_8__r_nContent_Transfer_Encoding:_8bit_r_n_r_n
mov r8d, 0xba
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
call fcn.180013f5c
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.18001cc98
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
mov r8d, esi
mov rdx, r15
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_notificationEMail__r_nContent_Type:_text_plain__charset_utf_8__r_nContent_Transfer_Encoding:_8bit_r_n_r_n
mov r8d, 0xb8
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
lea rdx, [0x180177610]
lea rcx, [rsp + 0x48]
call fcn.18001cc98
mov rax, qword [rsp + 0x70]
lea rcx, [rsp + 0x70]
mov r8d, esi
mov rdx, r15
call qword [rax + 0x18]
mov rax, qword [rsp + 0x70]
lea rdx, str.__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184_r_nContent_Disposition:_form_data__name_reportData___filename_report.dat__r_nContent_Type:_application_octet_stream_r_nContent_Transfer_Encoding:_binary_r_n_r_n
mov r8d, SetErrorInfo
lea rcx, [rsp + 0x70]
call qword [rax + 0x18]
mov r15, qword [rbp - 0x68]
test r15, r15
je 0x18001ac68
mov esi, dword [rbp - 0x80]
lea rcx, [rbp - 0x28]
xor edx, edx
lea r8d, [rdx + 0x38]
call fcn.180023140
mov eax, 0x58
mov dword [rbp - 0x28], gethostname
mov dword [rbp - 0xc], eax
mov dword [rbp - 0x10], eax
lea rax, str.Content_Type:_multipart_form_data__boundaryBUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184
mov qword [rbp - 0x18], rax
mov eax, dword [rsp + 0x40]
add eax, 0x36
add eax, esi
mov dword [rbp + 4], eax
mov rax, qword [rdi + 8]
mov qword [rsp + 0x48], rax
test r14, r14
je 0x18001ab06
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8001
mov rcx, r14
call qword [sym.imp.USER32.dll_PostMessageW]
mov rax, qword [rsp + 0x48]
mov rcx, rax
mov dword [rdi + 0x24], 3
call qword [sym.imp.KERNEL32.dll_ResetEvent]
xor r9d, r9d
mov qword [rsp + 0x20], 0x1c8
xor r8d, r8d
lea rdx, [rbp - 0x28]
mov rcx, r12
call qword [sym.imp.WININET.dll_HttpSendRequestExW]
test eax, eax
jne 0x18001ab4c
mov rcx, rdi
call fcn.18001a54c
mov ebx, eax
xor eax, eax
test ebx, ebx
jne 0x18001ac77
jmp 0x18001ab4e
xor eax, eax
test r14, r14
je 0x18001ab69
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8002
mov rcx, r14
call qword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
mov dword [rdi + 0x24], 4
mov r14d, eax
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
xor eax, eax
test esi, esi
je 0x18001abc5
lea r9, [rsp + 0x44]
mov dword [rsp + 0x44], eax
mov r8d, esi
mov rdx, r15
mov rcx, r12
call qword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
jne 0x18001abae
mov rcx, rdi
call fcn.18001a54c
mov ebx, eax
test eax, eax
jne 0x18001abbf
mov eax, dword [rsp + 0x44]
add r15, rax
sub esi, dword [rsp + 0x44]
je 0x18001abc5
xor eax, eax
jmp 0x18001ab84
mov r14d, 1
xor esi, esi
test r14d, r14d
jne 0x18001ac14
mov r15, qword [rbp - 0x48]
lea r9, [rsp + 0x40]
mov rcx, qword [rbp - 0x50]
mov rdx, r15
mov r8d, r13d
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18001abfe
mov esi, dword [rsp + 0x40]
test esi, esi
jne 0x18001ab73
mov r14d, 1
lea r15, str._r_n__BUGTRAP_7A1D6378_1294_491B_996C_37D4FF91D184___r_n_r_n
lea esi, [r14 + 0x35]
jmp 0x18001ab73
mov r14, qword [rbp - 0x38]
test ebx, ebx
jne 0x18001ac77
test r14, r14
je 0x18001ac35
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8003
mov rcx, r14
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, qword [rsp + 0x48]
mov dword [rdi + 0x24], 5
call qword [sym.imp.KERNEL32.dll_ResetEvent]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [sym.imp.WININET.dll_HttpEndRequestW]
test eax, eax
jne 0x18001ac77
mov rcx, rdi
call fcn.18001a54c
mov ebx, eax
jmp 0x18001ac77
mov edx, 8
mov rcx, rdi
mov ebx, edx
call fcn.180019d84
mov rcx, r12
mov dword [rdi + 0x24], 7
call qword [sym.imp.WININET.dll_InternetCloseHandle]
lea rax, [0x1800413a8]
mov qword [rsp + 0x60], rax
lea rax, [0x180041380]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x68]
movsxd rcx, dword [rax + 4]
lea rax, [0x180041338]
mov qword [rsp + rcx + 0x68], rax
mov rax, qword [rsp + 0x68]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x40]
mov dword [rsp + rcx + 0x64], edx
mov rcx, qword [rbp - 0x68]
call fcn.180021cd4
mov r15, qword [rbp - 0x50]
jmp 0x18001ace5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rdi
mov ebx, eax
call fcn.18001a3e0
mov rcx, qword [rbp - 0x30]
mov dword [rdi + 0x24], 7
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov r12, qword [rbp - 0x48]
jmp 0x18001ad0e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rdi
mov ebx, eax
call fcn.18001a3e0
mov rcx, qword [rbp - 0x40]
mov dword [rdi + 0x24], 7
call qword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x18001ad44
mov ebx, 0x43
mov rcx, rdi
mov edx, ebx
call fcn.180019d84
jmp 0x18001ad44
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rdi
mov ebx, eax
call fcn.18001a3e0
mov rcx, r12
call fcn.180021cd4
jmp 0x18001ad5d
mov edx, 8
mov rcx, rdi
mov ebx, edx
call fcn.180019d84
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18001ad86
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rdi
mov ebx, eax
call fcn.180019d84
jmp 0x18001ad86
mov edx, ebx
mov rcx, rdi
call fcn.18001a3e0
mov eax, ebx
mov rcx, qword [rbp + 0x1490]
xor rcx, rsp
call fcn.180021cb0
lea r11, [rsp + 0x15a0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret