Function at 0x10036440
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [ebp + 8]
push esi
push edi
xor edi, edi
mov byte [ebp - 1], 0
mov dword [ebp - 0x20], edi
lea esi, [ebp - 0xb0]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
test eax, eax
je 0x10036a12
cmp dword [eax], 0xbab1e
jne 0x10036a12
cmp byte [eax + 0xe2], 0
je 0x10036489
lea eax, [edi + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push ebx
mov ebx, dword [ebp + 0x14]
test ebx, ebx
jns 0x1003649d
pop ebx
pop edi
mov eax, 0xa
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [eax + 4]
mov dword [ebp - 8], eax
test eax, eax
je 0x1003650c
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.10035160
add esp, 8
mov ebx, eax
xor edx, edx
mov eax, 1
nop dword [eax]
or esi, 0xffffffff
test ebx, eax
je 0x100364d3
mov ecx, dword [ebp + edx*4 - 0x34]
cmp ecx, 0xffffffff
jae 0x100364d3
inc edi
mov esi, ecx
mov ecx, eax
rol ecx, 0x10
test ebx, ecx
je 0x100364e6
cmp dword [ebp + edx*4 - 0x34], 0xffffffff
jae 0x100364e6
inc edi
jmp 0x100364eb
cmp esi, 0xffffffff
je 0x100364f3
inc edx
rol eax, 1
cmp edx, 5
jb 0x100364c0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], edi
mov eax, dword [eax + 4]
mov dword [ebp - 8], eax
test eax, eax
jne 0x100364a7
mov ebx, dword [ebp + 0x14]
lea esi, [ebp - 0xb0]
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 8]
call fcn.10036340
mov eax, dword [ebp - 0x10]
add esp, 8
test eax, eax
js 0x1003652a
cmp eax, ebx
cmovl ebx, eax
mov dword [ebp + 0x14], ebx
mov eax, dword [ebp + 0x10]
add eax, edi
cmp byte [ebp + 0x20], 0
lea ecx, [eax + 1]
cmove ecx, eax
cmp ecx, 0xa
jbe 0x10036566
lea eax, [ecx*8]
push eax
call dword [0x100c2008]
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
test esi, esi
jne 0x10036562
pop ebx
pop edi
lea eax, [esi + 3]
pop esi
mov esp, ebp
pop ebp
ret
mov byte [ebp - 1], 1
xor ebx, ebx
mov dword [ebp - 0x14], ebx
test edi, edi
je 0x10036657
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x10036657
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.10035160
add esp, 8
mov dword [ebp - 8], eax
xor esi, esi
mov edx, 1
mov ecx, esi
shl edx, cl
or edi, 0xffffffff
xor ebx, ebx
test eax, edx
je 0x100365cf
mov eax, dword [ebp + esi*4 - 0x34]
cmp eax, 0xffffffff
jae 0x100365cf
mov ecx, dword [ebp - 0x18]
mov edi, eax
mov eax, dword [ebp - 0x14]
mov edx, 0x300
mov ebx, 0x29
mov dword [ecx + eax*8], edi
mov word [ecx + eax*8 + 4], dx
inc eax
mov dword [ebp - 0x14], eax
lea ecx, [esi + 0x10]
mov eax, 1
shl eax, cl
test dword [ebp - 8], eax
je 0x10036612
mov eax, dword [ebp + esi*4 - 0x34]
cmp eax, 0xffffffff
jae 0x10036612
push 0
push 0
mov edi, eax
or ebx, 0x32
push 0
push edi
call dword [sym.imp.WS2_32.dll_send]
mov eax, dword [ebp - 0x14]
mov edx, 0x10
mov ecx, dword [ebp - 0x18]
mov dword [ecx + eax*8], edi
mov word [ecx + eax*8 + 4], dx
inc eax
mov dword [ebp - 0x14], eax
jmp 0x10036617
cmp edi, 0xffffffff
je 0x1003663d
mov eax, dword [ebp + 8]
push ebx
push dword [eax + 0xdc]
push edi
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
jne 0x1003676a
mov eax, dword [ebp - 8]
inc esi
cmp esi, 5
jb 0x10036596
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x10036584
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
cmp dword [ebp + 0x10], 0
mov dword [ebp - 0x10], 0
jbe 0x10036756
lea eax, [esi + 4]
mov esi, dword [ebp + 0xc]
lea eax, [eax + ebx*8]
add esi, 4
mov dword [ebp - 0xc], eax
movzx edx, word [esi]
mov al, dl
and al, 1
movzx ecx, al
mov al, dl
neg ecx
sbb ecx, ecx
and ecx, 0x29
mov dword [ebp - 8], ecx
or dword [ebp - 8], 4
and al, 2
mov eax, dword [ebp - 8]
cmove eax, ecx
test dl, 4
je 0x100366b6
push 0
push 0
push 0
push dword [esi - 4]
or eax, 0x32
mov dword [ebp - 8], eax
call dword [sym.imp.WS2_32.dll_send]
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0xdc]
push dword [esi - 4]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
test eax, eax
jne 0x1003676a
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [esi - 4]
mov dword [ecx - 4], eax
xor eax, eax
mov word [ecx], ax
movzx eax, word [esi]
mov ebx, eax
mov dword [ebp - 0xc], ebx
mov ebx, dword [ebp - 0x14]
test al, 1
je 0x100366ff
mov eax, 0x300
mov word [ecx], ax
mov edx, eax
movzx eax, word [esi]
jmp 0x10036702
mov eax, dword [ebp - 0xc]
movzx edi, dx
movzx eax, ax
mov dword [ebp - 0xc], edi
mov edi, eax
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x20]
test al, 2
je 0x10036728
or edx, 0x400
mov word [ecx], dx
movzx eax, dx
movzx edx, word [esi]
jmp 0x1003672e
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
test dl, 4
je 0x10036739
or eax, 0x10
mov word [ecx], ax
mov eax, dword [ebp - 0x10]
inc ebx
inc eax
mov dword [ebp - 0x14], ebx
add ecx, 8
mov dword [ebp - 0x10], eax
add esi, 8
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp + 0x10]
jb 0x10036677
test ebx, ebx
jne 0x10036788
cmp byte [ebp + 0x20], bl
je 0x100369a7
xor esi, esi
mov dword [ebp - 0xc], esi
jmp 0x100367a1
cmp byte [ebp - 1], 0
je 0x1003677c
push dword [ebp - 0x18]
call dword [0x100c200c]
add esp, 4
pop ebx
pop edi
mov eax, 4
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push ebx
push dword [ebp - 0x18]
call fcn.1003b8a0
mov esi, eax
add esp, 0x10
mov dword [ebp - 0xc], esi
test esi, esi
jg 0x100367bc
mov ecx, dword [ebp + 8]
push 0
push dword [ebp + 0x14]
add ecx, 0xdc
push 0
push ecx
push 1
call dword [sym.imp.WS2_32.dll_WSAWaitForMultipleEvents]
test esi, esi
jns 0x100367ca
pop ebx
pop edi
mov eax, 0xc
pop esi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov eax, esi
test esi, esi
cmovle eax, ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 0x10], ecx
jbe 0x100368f9
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
lea eax, [eax + edi*8]
add eax, 6
xor edi, edi
mov dword [ebp - 0x10], eax
movsx eax, word [eax]
xor ebx, ebx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x60], ebx
push dword [eax + edi*8]
call dword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x10036877
mov ecx, dword [ebp - 0x60]
mov eax, ebx
test cl, 0x29
mov ebx, ecx
setne al
movzx edx, ax
mov eax, edx
or eax, 4
and bl, 0x32
mov ebx, dword [ebp - 0x60]
movzx ecx, ax
mov eax, edx
cmove ecx, eax
movzx edx, cx
mov eax, edx
or eax, 2
and bl, 4
movzx ecx, ax
mov eax, edx
cmove ecx, eax
cmp dword [ebp + 0x18], 0
movzx eax, cx
mov ebx, eax
je 0x10036877
test esi, esi
jg 0x10036877
cmp dword [ebp - 0x60], 0
je 0x10036877
mov eax, dword [ebp + 8]
inc dword [ebp - 0x1c]
push 0
push dword [eax + 0xdc]
mov eax, dword [ebp + 0xc]
push dword [eax + edi*8]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
jmp 0x100368e0
mov eax, dword [ebp + 8]
push 0
push dword [eax + 0xdc]
mov eax, dword [ebp + 0xc]
push dword [eax + edi*8]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
test esi, esi
jle 0x100368e0
mov edx, dword [ebp - 8]
mov eax, ebx
or eax, 1
and edx, 0x300
movzx ecx, ax
movzx eax, bx
mov ebx, dword [ebp - 8]
cmove ecx, eax
movzx edx, cx
mov eax, edx
or eax, 4
and bl, 0x10
mov ebx, dword [ebp - 8]
movzx ecx, ax
mov eax, edx
cmove ecx, eax
movzx edx, cx
mov eax, edx
or eax, 2
and ebx, 0x400
movzx ecx, ax
mov eax, edx
cmove ecx, eax
mov eax, dword [ebp + 0xc]
mov word [eax + edi*8 + 6], cx
mov eax, dword [ebp - 0x10]
inc edi
add eax, 8
mov dword [ebp - 0x10], eax
cmp edi, dword [ebp + 0x10]
jb 0x100367f0
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x14]
test edi, edi
je 0x10036998
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x10036998
mov ebx, dword [ebp - 0xc]
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.10035160
add esp, 8
mov dword [ebp - 0xc], eax
xor esi, esi
mov edi, 1
nop dword [eax]
lea ecx, [esi + 0x10]
mov edx, edi
bts edx, ecx
test eax, edx
je 0x10036988
lea eax, [ebp - 0x60]
mov dword [ebp - 0x60], 0
push eax
push 0
push dword [ebp + esi*4 - 0x34]
call dword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
test eax, eax
jne 0x10036968
cmp dword [ebp + 0x18], eax
je 0x10036968
test ebx, ebx
jg 0x10036968
cmp dword [ebp - 0x60], eax
je 0x10036968
inc dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
push 0
push dword [eax + 0xdc]
push dword [ebp + esi*4 - 0x34]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
mov eax, dword [ebp - 0xc]
inc esi
rol edi, 1
cmp esi, 5
jb 0x10036930
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x10036915
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
push dword [eax + 0xdc]
call dword [sym.imp.WS2_32.dll_WSAResetEvent]
cmp byte [ebp - 1], 0
je 0x100369b9
push dword [ebp - 0x18]
call dword [0x100c200c]
add esp, 4
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x100369c5
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
cmp byte [ebp + 0x1c], 0
je 0x10036a09
test ebx, ebx
jne 0x10036a09
cmp byte [ebp + 0x20], bl
jne 0x10036a09
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], ebx
push eax
push dword [ebp + 8]
call sym.libcurl.dll_curl_multi_timeout
add esp, 8
test eax, eax
jne 0x10036a09
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x10036a09
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
jg 0x100369fc
test eax, eax
jns 0x100369fe
mov eax, ecx
cdq
push edx
push eax
call fcn.1003bc50
add esp, 8
pop ebx
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret