Function at 0x10085830
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 [0x10100008]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0x18], 0
push ebx
push esi
push edi
je 0x100861d2
cmp dword [ebp + 0x30], 0
je 0x100861d2
cmp dword [ebp + 0x60], 0
je 0x100861d2
lea eax, [ebp + 0x38]
push eax
lea ecx, [ebp - 0x130]
call fcn.100b24b0
cmp dword [ebp - 0x11c], 0x10
lea ecx, [ebp - 0xd8]
lea eax, [ebp - 0x130]
cmovae eax, dword [ebp - 0x130]
push ecx
push eax
call fcn.100c97ba
mov edx, dword [ebp - 0x11c]
or ebx, 0xffffffff
add esp, 8
test eax, eax
cmove ebx, dword [ebp - 0xc4]
cmp edx, 0x10
jb 0x100858dd
mov ecx, dword [ebp - 0x130]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100858d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100862e5
push edx
push ecx
call fcn.100be753
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 0x10085930
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 0x10085901
dec esi
mov byte [esi], 0x2d
jmp 0x10085952
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 0x10085930
lea eax, [ebp - 7]
mov dword [ebp - 0x108], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0xf
cmp esi, eax
je 0x10085986
sub eax, esi
lea ecx, [ebp - 0x108]
push eax
push esi
call fcn.100b2ac0
lea edx, [ebp - 0x108]
lea ecx, [ebp - 0x38]
call fcn.10083db0
mov edx, dword [ebp - 0xf4]
cmp edx, 0x10
jb 0x100859ce
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100859c4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100862ea
push edx
push ecx
call fcn.100be753
add esp, 8
mov ecx, dword [ebp - 0x28]
mov esi, 0x7fffffff
mov eax, esi
sub eax, ecx
cmp eax, 0x30
jb 0x100862ef
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.100b5240
mov ecx, dword [ebp - 0x28]
mov eax, esi
sub eax, ecx
cmp eax, 6
jb 0x100862f4
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.100b5240
push str._r_nContent_Disposition:_form_data__name_data___filename_
lea ecx, [ebp - 0x1c]
call fcn.100b2330
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.100b2f10
add esp, 4
mov ecx, eax
push str.__r_nContent_Type:_application_octet_stream_r_n_r_n
call fcn.100b2330
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 0x10085aee
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085ae4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100862f9
push edx
push ecx
call fcn.100be753
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 0x10085b43
mov ecx, dword [ebp - 0x130]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085b39
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100862f9
push edx
push ecx
call fcn.100be753
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 0x10085b92
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085b88
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100862f9
push edx
push ecx
call fcn.100be753
add esp, 8
mov ecx, dword [ebp - 0x28]
sub esi, ecx
cmp esi, 8
jb 0x100862fe
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.100b5240
push str.___r_n
lea ecx, [ebp - 0x108]
call fcn.100b2330
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 0x10085c32
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085c28
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086303
push edx
push ecx
call fcn.100be753
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 0x10085c70
sub ebx, edx
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10085c80
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.100be761
add esp, 4
mov dword [ebp - 0x10c], eax
push 0x10000
push 0
push eax
call fcn.100c0b60
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.100b24b0
cmp dword [ebp - 0xf4], 0x10
lea ecx, [ebp - 0xd8]
lea eax, [ebp - 0x108]
cmovae eax, dword [ebp - 0x108]
push ecx
push eax
call fcn.100c97ba
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 0x10085d8c
mov ecx, dword [ebp - 0x108]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085d82
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086308
push edx
push ecx
call fcn.100be753
add esp, 8
push 0
push 0
push 0
push 1
push 0x100f1188
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 0x10085e68
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 0x10085e62
add edi, dword [ebp - 0xe0]
sub ebx, dword [ebp - 0xe0]
jne 0x10085e40
mov edi, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x10085f0c
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 0x10086095
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xe0], eax
test ebx, ebx
je 0x10085eec
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 0x10085ee3
add edi, dword [ebp - 0xe4]
sub ebx, dword [ebp - 0xe4]
jne 0x10085ec1
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 0x10085e80
mov ebx, dword [ebp - 0x110]
test ebx, ebx
je 0x10085f48
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 0x10085f42
add edi, dword [ebp - 0xdc]
sub ebx, dword [ebp - 0xdc]
jne 0x10085f20
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 0x10085f62
push esi
call ebx
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x10085f6f
push eax
call ebx
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x10085f7c
push eax
call ebx
test edi, edi
je 0x10085f8c
cmp edi, 0xffffffff
je 0x10085f8c
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x10085fc0
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085fb6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
push edx
push ecx
call fcn.100be753
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 0x10086006
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10085ffc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
push edx
push ecx
call fcn.100be753
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 0x1008604c
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086042
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
push edx
push ecx
call fcn.100be753
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 0x100861d2
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100861c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
jmp 0x100861c8
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
test esi, esi
je 0x100860a2
push esi
call ebx
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x100860af
push eax
call ebx
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x100860bc
push eax
call ebx
test edi, edi
je 0x100860cc
cmp edi, 0xffffffff
je 0x100860cc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x3c]
cmp edx, 0x10
jb 0x10086100
mov ecx, dword [ebp - 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100860f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
push edx
push ecx
call fcn.100be753
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 0x10086146
mov ecx, dword [ebp - 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1008613c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
push edx
push ecx
call fcn.100be753
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 0x1008618c
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086182
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
push edx
push ecx
call fcn.100be753
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 0x100861d2
mov ecx, dword [ebp - 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100861c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1008630d
push edx
push ecx
call fcn.100be753
add esp, 8
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x10086206
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100861fc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086312
push edx
push ecx
call fcn.100be753
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 0x1008624c
mov ecx, dword [ebp + 0x20]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086242
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086312
push edx
push ecx
call fcn.100be753
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 0x10086292
mov ecx, dword [ebp + 0x38]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10086288
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086312
push edx
push ecx
call fcn.100be753
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 0x100862d4
mov ecx, dword [ebp + 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100862ca
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10086312
push edx
push ecx
call fcn.100be753
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100be1f9
mov esp, ebp
pop ebp
ret
call fcn.100ca55d
call fcn.100ca55d
call fcn.10083390
call fcn.10083390
call fcn.100ca55d
call fcn.10083390
call fcn.100ca55d
call fcn.100ca55d
call fcn.100ca55d
call fcn.100ca55d
int3