Function at 0x10085860
Capabilities:
Connect to http server
Create http request
Read and send data from client to server
Read file on windows
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x10102008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0x18], 0
push ebx
push esi
push edi
je 0x10086202
cmp dword [ebp + 0x30], 0
je 0x10086202
cmp dword [ebp + 0x60], 0
je 0x10086202
lea eax, [ebp + 0x38]
push eax
lea ecx, [ebp - 0x130]
call fcn.100b3780
cmp dword [ebp - 0x11c], 0x10
lea ecx, [ebp - 0xd8]
lea eax, [ebp - 0x130]
cmovae eax, dword [ebp - 0x130]
push ecx
push eax
call fcn.100cb38a
mov edx, dword [ebp - 0x11c]
or ebx, 0xffffffff
add esp, 8
test eax, eax
cmove ebx, dword [ebp - 0xc4]
cmp edx, 0x10
jb 0x1008590d
mov ecx, dword [ebp - 0x130]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085903
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086315
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov dword [ebp - 0x120], 0
lea esi, [ebp - 7]
mov dword [ebp - 0x11c], 0xf
mov byte [ebp - 0x130], 0
test ebx, ebx
jns 0x10085960
neg ebx
mov eax, 0xcccccccd
dec esi
mul ebx
shr edx, 3
mov al, dl
shl al, 2
lea ecx, [eax + edx]
add cl, cl
sub bl, cl
add bl, 0x30
mov byte [esi], bl
mov ebx, edx
test ebx, ebx
jne 0x10085931
dec esi
mov byte [esi], 0x2d
jmp 0x10085982
mov eax, 0xcccccccd
dec esi
mul ebx
shr edx, 3
mov al, dl
shl al, 2
lea ecx, [eax + edx]
add cl, cl
sub bl, cl
add bl, 0x30
mov byte [esi], bl
mov ebx, edx
test ebx, ebx
jne 0x10085960
lea eax, [ebp - 7]
mov dword [ebp - 0x108], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
cmp esi, eax
je 0x100859b6
sub eax, esi
lea ecx, [ebp - 0x108]
push eax
push esi
call fcn.100b3d90
lea edx, [ebp - 0x108]
lea ecx, [ebp - 0x38]
call fcn.10083de0
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x100859fe
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100859f4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008631a
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, dword [ebp - 0x28]
mov esi, 0x7fffffff
mov eax, esi
sub eax, ecx
cmp eax, 0x30
jb 0x1008631f
cmp dword [ebp - 0x24], 0x10
lea eax, [ebp - 0x38]
push ecx
cmovae eax, dword [ebp - 0x38]
push eax
push 0x30
push str.Content_Type:_multipart_form_data__boundary____
push ecx
push dword [ebp - 0xdc]
lea ecx, [ebp - 0x80]
call fcn.100b6510
mov ecx, dword [ebp - 0x28]
mov eax, esi
sub eax, ecx
cmp eax, 6
jb 0x10086324
cmp dword [ebp - 0x24], 0x10
lea eax, [ebp - 0x38]
push ecx
cmovae eax, dword [ebp - 0x38]
push eax
push 6
push str.______
push ecx
push dword [ebp - 0xdc]
lea ecx, [ebp - 0x1c]
call fcn.100b6510
push str._r_nContent_Disposition:_form_data__name_data___filename_
lea ecx, [ebp - 0x1c]
call fcn.100b3600
lea edx, [ebp - 0x130]
lea ecx, [ebp - 0x108]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x130], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x120], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp + 0x50]
push eax
call fcn.100b41e0
add esp, 4
mov ecx, eax
push str.__r_nContent_Type:_application_octet_stream_r_n_r_n
call fcn.100b3600
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x68], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x58], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x10085b1e
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085b14
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086329
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
mov byte [ebp - 0x108], 0
cmp edx, 0x10
jb 0x10085b73
mov ecx, dword [ebp - 0x130]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085b69
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086329
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 8]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0xf
mov byte [ebp - 0x130], 0
cmp edx, 0x10
jb 0x10085bc2
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085bb8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086329
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, dword [ebp - 0x28]
sub esi, ecx
cmp esi, 8
jb 0x1008632e
cmp dword [ebp - 0x24], 0x10
lea eax, [ebp - 0x38]
push ecx
cmovae eax, dword [ebp - 0x38]
push eax
push 8
push str._r_n______
push ecx
push dword [ebp - 0xdc]
lea ecx, [ebp - 0x108]
call fcn.100b6510
push str.___r_n
lea ecx, [ebp - 0x108]
call fcn.100b3600
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x50], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x40], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x10085c62
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085c58
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086333
push edx
push ecx
call fcn.100bfa23
add esp, 8
cmp dword [ebp - 0x6c], 0x10
lea eax, [ebp - 0x80]
lea ecx, [ebp - 0x50]
cmovae eax, dword [ebp - 0x80]
cmp dword [ebp - 0x54], 0x10
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x68]
cmovae eax, dword [ebp - 0x68]
cmp dword [ebp - 0x3c], 0x10
mov ebx, eax
mov dword [ebp - 0xe0], eax
cmovae ecx, dword [ebp - 0x50]
mov dword [ebp - 0xdc], ecx
lea edx, [ebx + 1]
nop word [eax + eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x10085ca0
sub ebx, edx
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10085cb0
xorps xmm0, xmm0
mov dword [ebp - 0xec], 0
sub ecx, edx
movlpd qword [ebp - 0xa4], xmm0
push 0x10000
mov dword [ebp - 0x110], ecx
movlpd qword [ebp - 0x9c], xmm0
movlpd qword [ebp - 0x94], xmm0
movlpd qword [ebp - 0x88], xmm0
call fcn.100bfa31
add esp, 4
mov dword [ebp - 0x10c], eax
push 0x10000
push 0
push eax
call fcn.100c1e30
add esp, 0xc
lea ecx, [ebp + 0x38]
cmp dword [ebp + 0x4c], 0x10
cmovae ecx, dword [ebp + 0x38]
push 0
push 0x8000080
push 3
push 0
push 1
push 0x80000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
lea ecx, [ebp - 0x108]
lea eax, [ebp + 0x38]
mov dword [ebp - 0xf0], edi
push eax
call fcn.100b3780
cmp dword [ebp - 0xf4], 0x10
lea ecx, [ebp - 0xd8]
lea eax, [ebp - 0x108]
cmovae eax, dword [ebp - 0x108]
push ecx
push eax
call fcn.100cb38a
mov edx, dword [ebp - 0xf4]
add esp, 8
test eax, eax
mov eax, 0xffffffff
cmove eax, dword [ebp - 0xc4]
mov dword [ebp - 0xe8], eax
cmp edx, 0x10
jb 0x10085dbc
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085db2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086338
push edx
push ecx
call fcn.100bfa23
add esp, 8
push 0
push 0
push 0
push 1
push 0x100f3188
call dword [sym.imp.WININET.dll_InternetOpenA]
cmp dword [ebp + 0x1c], 0x10
lea ecx, [ebp + 8]
push 0
cmovae ecx, dword [ebp + 8]
push 0
push 3
push 0
push 0
push 0x50
push ecx
push eax
mov dword [ebp - 0x118], eax
call dword [sym.imp.WININET.dll_InternetConnectA]
cmp dword [ebp + 0x34], 0x10
lea ecx, [ebp + 0x20]
push 0
cmovae ecx, dword [ebp + 0x20]
push 0
push 0
push 0
push 0
push ecx
push str.POST
push eax
mov dword [ebp - 0x114], eax
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
push 0xa0000000
push 0xffffffffffffffff
push dword [ebp - 0xe4]
mov esi, eax
push esi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
mov eax, dword [ebp - 0x110]
add eax, dword [ebp - 0xe8]
push 0
add eax, ebx
mov dword [ebp - 0xa8], 0x28
push 8
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0xa8]
push 0
push eax
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestExW]
test ebx, ebx
je 0x10085e98
mov edi, dword [ebp - 0xe0]
nop
lea eax, [ebp - 0xe0]
push eax
push ebx
push edi
push esi
call dword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x10085e92
add edi, dword [ebp - 0xe0]
sub ebx, dword [ebp - 0xe0]
jne 0x10085e70
mov edi, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x10085f3c
nop word [eax + eax]
sub eax, dword [ebp - 0xec]
mov ecx, 4
cmp eax, ecx
push 0
cmovb ecx, eax
lea eax, [ebp - 0x20]
push eax
push ecx
push dword [ebp - 0x10c]
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x100860c5
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xe0], eax
test ebx, ebx
je 0x10085f1c
mov edi, eax
lea eax, [ebp - 0xe4]
push eax
push ebx
push edi
push esi
call dword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x10085f13
add edi, dword [ebp - 0xe4]
sub ebx, dword [ebp - 0xe4]
jne 0x10085ef1
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xec]
add eax, ebx
cmp eax, dword [ebp - 0xe8]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xe8]
jb 0x10085eb0
mov ebx, dword [ebp - 0x110]
test ebx, ebx
je 0x10085f78
mov edi, dword [ebp - 0xdc]
nop dword [eax]
lea eax, [ebp - 0xdc]
push eax
push ebx
push edi
push esi
call dword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x10085f72
add edi, dword [ebp - 0xdc]
sub ebx, dword [ebp - 0xdc]
jne 0x10085f50
mov edi, dword [ebp - 0xf0]
push 0
push 8
push 0
push esi
call dword [sym.imp.WININET.dll_HttpEndRequestA]
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
test esi, esi
je 0x10085f92
push esi
call ebx
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x10085f9f
push eax
call ebx
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x10085fac
push eax
call ebx
test edi, edi
je 0x10085fbc
cmp edi, 0xffffffff
je 0x10085fbc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x10085ff0
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085fe6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp edx, 0x10
jb 0x10086036
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008602c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp edx, 0x10
jb 0x1008607c
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086072
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp edx, 0x10
jb 0x10086202
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100861f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
jmp 0x100861f8
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
test esi, esi
je 0x100860d2
push esi
call ebx
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x100860df
push eax
call ebx
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x100860ec
push eax
call ebx
test edi, edi
je 0x100860fc
cmp edi, 0xffffffff
je 0x100860fc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x10086130
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086126
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp edx, 0x10
jb 0x10086176
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008616c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
cmp edx, 0x10
jb 0x100861bc
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100861b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp edx, 0x10
jb 0x10086202
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100861f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008633d
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x10086236
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008622c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086342
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp edx, 0x10
jb 0x1008627c
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086272
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086342
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp + 0x4c]
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x34], 0xf
mov byte [ebp + 0x20], 0
cmp edx, 0x10
jb 0x100862c2
mov ecx, dword [ebp + 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100862b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086342
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov edx, dword [ebp + 0x64]
mov dword [ebp + 0x48], 0
mov dword [ebp + 0x4c], 0xf
mov byte [ebp + 0x38], 0
cmp edx, 0x10
jb 0x10086304
mov ecx, dword [ebp + 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100862fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086342
push edx
push ecx
call fcn.100bfa23
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100bf4c9
mov esp, ebp
pop ebp
ret
call fcn.100cc12d
call fcn.100cc12d
call fcn.100833c0
call fcn.100833c0
call fcn.100cc12d
call fcn.100833c0
call fcn.100cc12d
call fcn.100cc12d
call fcn.100cc12d
call fcn.100cc12d
int3