Function at 0x140003f90
Capabilities:
Check http status code
Get file size
Read and send data from client to server
Read data from internet
Read file on windows
Receive data
Send data

Disassembly:
push rbp
push r12
push r13
push r14
push r15
mov eax, 0x3140
call fcn.1401b2b30
sub rsp, rax
lea rbp, [rsp + 0x30]
mov qword [rbp + 0xf0], 0xfffffffffffffffe
mov qword [rbp + 0x3148], rbx
mov qword [rbp + 0x3150], rsi
mov qword [rbp + 0x3158], rdi
mov rax, qword [0x140298ad8]
xor rax, rbp
mov qword [rbp + 0x3100], rax
mov r13, rcx
call fcn.14002d140
mov rcx, rax
xor edi, edi
mov edx, edi
test rax, rax
setne dl
test edx, edx
jne 0x140004001
mov ecx, 0x80004005
call fcn.140001910
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x18], rax
lea rdx, str._______________________________ceb3bc13bbea0941a04b2f8226f5d7ea
test rdx, 0xffffffffffff0000
jne 0x14000403f
movzx ebx, dx
mov ecx, ebx
call fcn.14003e9c8
test rax, rax
je 0x14000404f
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp + 0x18]
call fcn.140005050
jmp 0x14000404f
mov r8d, 0x3f
lea rcx, [rbp + 0x18]
call fcn.1400016b0
nop
call fcn.14002d140
mov rdx, rax
mov ecx, edi
test rax, rax
setne cl
test ecx, ecx
jne 0x14000406e
mov ecx, 0x80004005
call fcn.140001910
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp], rbx
mov r12, qword [r13 + 0x58]
mov r15, qword [r13 + 0x90]
or rdi, 0xffffffffffffffff
test r12, r12
je 0x140004425
test r15, r15
je 0x140004425
mov rsi, r12
test r12, r12
je 0x14000441f
mov r12, qword [r12]
mov rsi, qword [rsi + 0x10]
mov rcx, qword [rsi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi - 8], 0
jl 0x1400040db
cmp rax, qword [rsi - 0x18]
jne 0x1400040db
lea r14, [rsi - 0x18]
lock inc dword [rsi - 8]
mov rbx, qword [rbp]
jmp 0x140004116
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rsi - 0x10]
call qword [rax]
mov r14, rax
test rax, rax
je 0x140004419
mov ecx, dword [rsi - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rsi - 0x10]
inc ecx
movsxd rdx, ecx
lea r9, [rdx + rdx]
mov r8, rsi
add rdx, rdx
lea rcx, [rax + 0x18]
call fcn.1401aef30
lea rax, [r14 + 0x18]
mov qword [rbp + 0x48], rax
mov rsi, qword [r15 + 0x10]
mov r15, qword [r15]
mov qword [rbp + 0x40], r15
mov rcx, qword [rsi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi - 8], 0
jl 0x140004150
cmp rax, qword [rsi - 0x18]
jne 0x140004150
lea r14, [rsi - 0x18]
lock inc dword [rsi - 8]
mov rbx, qword [rbp]
jmp 0x14000418b
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rsi - 0x10]
call qword [rax]
mov r14, rax
test rax, rax
je 0x140004413
mov ecx, dword [rsi - 0x10]
mov dword [rax + 8], ecx
mov ecx, dword [rsi - 0x10]
inc ecx
movsxd rdx, ecx
lea r9, [rdx + rdx]
mov r8, rsi
add rdx, rdx
lea rcx, [rax + 0x18]
call fcn.1401aef30
lea rax, [r14 + 0x18]
mov qword [rbp + 0x58], rax
lea r8, [rbp + 0x18]
lea rdx, [0x1402454f0]
lea rcx, [rbp + 0x98]
call fcn.140004c10
nop
lea r8, [0x14024547c]
mov rdx, rax
lea rcx, [rbp + 0xa0]
call fcn.140004dc0
nop
lea r8, str.Content_Disposition:_form_data__name_
mov rdx, rax
lea rcx, [rbp + 0x88]
call fcn.140004dc0
nop
lea r8, [rbp + 0x48]
mov rdx, rax
lea rcx, [rbp + 0xb0]
call fcn.140004a80
nop
lea r8, str.__r_n_r_n
mov rdx, rax
lea rcx, [rbp + 0x78]
call fcn.140004dc0
nop
lea r8, [rbp + 0x58]
mov rdx, rax
lea rcx, [rbp + 0xa8]
call fcn.140004a80
nop
lea r8, [0x14024547c]
mov rdx, rax
lea rcx, [rbp + 0x60]
call fcn.140004dc0
nop
mov r15, qword [rax]
movsxd rcx, dword [r15 - 0x10]
mov rax, r15
sub rax, rbx
sar rax, 1
mov qword [rbp + 0x30], rax
mov esi, dword [rbx - 0x10]
mov dword [rbp + 0x24], esi
xor edx, edx
mov eax, edx
test ecx, ecx
setns al
test eax, eax
je 0x140004408
test r15, r15
jne 0x14000425e
mov r14d, edx
jmp 0x14000426e
mov rdx, rcx
mov rcx, r15
call fcn.1401af460
mov r14, rax
xor edx, edx
mov ecx, 0x7fffffff
sub ecx, r14d
cmp ecx, esi
setge dl
test edx, edx
je 0x1400043fd
add esi, r14d
js 0x1400043f2
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x1400042ac
mov edx, esi
lea rcx, [rbp]
call fcn.140001650
mov rbx, qword [rbp]
mov eax, dword [rbp + 0x24]
mov rcx, qword [rbp + 0x30]
cmp rcx, rax
ja 0x1400042bc
lea r15, [rbx + rcx*2]
movsxd rdx, r14d
add rdx, rdx
lea rcx, [rbx + rax*2]
mov r9, rdx
mov r8, r15
call fcn.1401aef30
cmp esi, dword [rbx - 0xc]
jg 0x1400043e7
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
mov rdx, qword [rbp + 0x60]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400042ff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xa8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000431b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x78]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004334
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xb0]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004350
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x88]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000436c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xa0]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004388
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x98]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400043a4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400043bd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400043d5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test r12, r12
je 0x140004425
mov rbx, qword [rbp]
mov r15, qword [rbp + 0x40]
jmp 0x140004097
mov ecx, 0x80070057
call fcn.140001910
int3
mov ecx, 0x80070057
call fcn.140001910
int3
mov ecx, 0x80070057
call fcn.140001910
int3
mov ecx, 0x80070057
call fcn.140001910
nop
call fcn.140001850
nop
call fcn.140001850
int3
call fcn.14002dec4
int3
lea r8, [0x1402454f0]
lea rdx, [rbp]
lea rcx, [rbp + 0x80]
call fcn.140004dc0
nop
lea r8, [rbp + 0x18]
mov rdx, rax
lea rcx, [rbp + 0x70]
call fcn.140004a80
nop
lea r8, str._r_nContent_Disposition:_form_data__name_LocalFile___filename_minidump.zip__r_nContent_Type:_application_x_zip_compressed_r_n_r_n
mov rdx, rax
lea rcx, [rbp + 8]
call fcn.140004dc0
nop
mov rdx, qword [rbp + 0x70]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000447b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x80]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004496
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, [rbp + 0x18]
lea rdx, str._r_n__
lea rcx, [rbp + 0x90]
call fcn.140004c10
nop
lea r8, [0x1402454f0]
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.140004dc0
nop
mov rdx, qword [rbp + 0x90]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400044dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor edx, edx
mov rcx, qword [r13 + 0xc8]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r14d, eax
mov rcx, qword [rbp + 8]
mov r8d, dword [rcx - 0x10]
mov rcx, qword [rbp + 0x10]
mov ebx, dword [rcx - 0x10]
add ebx, r8d
add ebx, eax
mov esi, ebx
mov ecx, ebx
call fcn.14002a3e4
mov r15, rax
mov qword [rbp + 0x30], rax
test rax, rax
je 0x1400049e3
mov rdx, qword [rbp + 8]
cmp dword [rdx - 8], 1
jle 0x140004536
mov edx, dword [rdx - 0x10]
lea rcx, [rbp + 8]
call fcn.140001550
mov rdx, qword [rbp + 8]
movabs r12, 0xffffffffffffff0
test rdx, rdx
jne 0x140004549
xor eax, eax
jmp 0x14000459f
mov rax, rdi
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140004550
inc eax
cmp eax, 0x3fffffff
jle 0x140004567
xor eax, eax
jmp 0x14000459f
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14000457c
mov rcx, r12
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401b2b30
sub rsp, rcx
lea rcx, [rsp + 0x30]
mov r9d, 3
call fcn.140004ba0
mov rdx, qword [rbp + 8]
movsxd r9, dword [rdx - 0x10]
mov r8, rax
mov rdx, rsi
mov rcx, r15
call fcn.1401aef30
mov rax, qword [rbp + 8]
movsxd rsi, dword [rax - 0x10]
add rsi, r15
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x68]
mov r8d, r14d
mov rdx, rsi
mov rcx, qword [r13 + 0xc8]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rbp + 0x24], eax
test eax, eax
jne 0x1400045e9
mov rcx, r15
jmp 0x1400049dd
add r14, rsi
mov rdx, qword [rbp + 0x10]
cmp dword [rdx - 8], 1
jle 0x140004606
mov edx, dword [rdx - 0x10]
lea rcx, [rbp + 0x10]
call fcn.140001550
mov rdx, qword [rbp + 0x10]
test rdx, rdx
jne 0x140004611
xor esi, esi
mov eax, esi
jmp 0x140004667
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x140004614
inc eax
cmp eax, 0x3fffffff
jle 0x14000462d
xor esi, esi
mov eax, esi
jmp 0x140004667
lea r8d, [rax + rax]
cdqe
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140004642
mov rcx, r12
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401b2b30
sub rsp, rcx
lea rcx, [rsp + 0x30]
mov r9d, 3
call fcn.140004ba0
mov rdx, qword [rbp + 0x10]
xor esi, esi
movsxd r8, dword [rdx - 0x10]
mov r9, r8
mov rdx, r8
mov r8, rax
mov rcx, r14
call fcn.1401aef30
xor eax, eax
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], rax
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov dword [rbp + 0xb8], 0x38
mov dword [rbp + 0xe4], ebx
nop
mov qword [rsp + 0x20], rsi
mov r9d, 8
xor r8d, r8d
lea rdx, [rbp + 0xb8]
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.WININET.dll_HttpSendRequestExW]
mov r14d, eax
lea rdx, [r13 + 0x38]
mov rcx, qword [r13 + 0x28]
call fcn.1400038d0
test al, al
jne 0x1400046c0
test r14d, r14d
jne 0x140004700
mov rcx, r15
jmp 0x1400049dd
call fcn.14003da88
mov rax, qword [rax + 8]
mov qword [rbp + 0x40], rax
test ebx, ebx
je 0x140004762
mov dword [rbp + 0x28], esi
mov esi, 0x1000
cmp ebx, esi
cmovb esi, ebx
lea r9, [rbp + 0x28]
mov r8d, esi
mov rdx, r15
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.WININET.dll_InternetWriteFile]
mov r14d, eax
mov rax, qword [rbp + 0x40]
cmp byte [rax + 0x384], 0
jne 0x1400049d9
test r14d, r14d
je 0x1400049d9
mov eax, dword [rbp + 0x28]
cmp eax, esi
jne 0x140004762
add r15, rax
sub ebx, eax
mov esi, 0
jne 0x140004711
test r14d, r14d
je 0x1400049d9
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.WININET.dll_HttpEndRequestW]
test eax, eax
je 0x1400049d9
mov dword [rbp + 0x38], 4
xor ebx, ebx
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x38]
lea r8, [r13 + 0x38]
mov edx, 0x20000013
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x1400049d9
cmp dword [r13 + 0x38], 0xc8
jne 0x140004968
mov dword [rbp + 0x3c], 0x1000
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x3c]
lea r8, [rbp + 0x1100]
lea edx, [rbx + 1]
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x140004968
lea rdx, str.text_html
lea rcx, [rbp + 0x1100]
call fcn.1401af480
test rax, rax
jne 0x140004820
lea rdx, str.text_xml
lea rcx, [rbp + 0x1100]
call fcn.1401af480
test rax, rax
je 0x140004968
mov dword [rbp + 0x20], ebx
movsxd rsi, dword [rbp + 0x24]
mov r14, r12
nop word [rax + rax]
lea r9, [rbp + 0x20]
mov r8d, 0x1000
lea rdx, [rbp + 0x100]
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x140004947
cmp dword [rbp + 0x20], 0
jbe 0x140004947
call fcn.14002d140
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
je 0x14000495d
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rbp + 0x50], rax
mov eax, dword [rbp + 0x20]
cmp rax, 0x1000
jae 0x140004957
mov byte [rbp + rax + 0x100], 0
lea rax, [rbp + 0x100]
mov rdx, rdi
inc rdx
cmp byte [rax + rdx], 0
jne 0x1400048a4
inc edx
cmp edx, 0x3fffffff
jle 0x1400048bc
mov rax, rbx
jmp 0x1400048fc
movsxd rax, edx
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x1400048ce
mov rcx, r14
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401b2b30
sub rsp, rcx
lea rcx, [rsp + 0x30]
mov r9d, 3
mov r8d, edx
lea rdx, [rbp + 0x100]
call fcn.140004b40
test rax, rax
jne 0x140004900
mov ecx, ebx
jmp 0x14000490d
mov rcx, rdi
inc rcx
cmp word [rax + rcx*2], 0
jne 0x140004903
mov r8d, ecx
mov rdx, rax
lea rcx, [rbp + 0x50]
call fcn.1400016b0
lea rcx, [r13 + 0x30]
mov rbx, qword [rbp + 0x50]
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
call fcn.140004e90
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004945
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor ebx, ebx
test rsi, rsi
je 0x140004968
cmp dword [rbp + 0x20], 0
je 0x140004968
jmp 0x140004830
call fcn.1401af79c
nop
mov ecx, 0x80004005
call fcn.140001910
int3
mov rcx, qword [rbp + 0x30]
call fcn.14002a3dc
nop
mov rdx, qword [rbp + 0x10]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000498b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400049a4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400049bd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [rbp + 0x18]
lea rdx, [rax - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400049d5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov al, 1
jmp 0x140004a48
mov rcx, qword [rbp + 0x30]
call fcn.14002a3dc
nop
mov rdx, qword [rbp + 0x10]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400049fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004a15
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004a2e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rax, qword [rbp + 0x18]
lea rdx, [rax - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140004a46
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
mov rcx, qword [rbp + 0x3100]
xor rcx, rbp
call fcn.1401aef10
mov rbx, qword [rbp + 0x3148]
mov rsi, qword [rbp + 0x3150]
mov rdi, qword [rbp + 0x3158]
lea rsp, [rbp + 0x3110]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret