Function at 0x415330
Capabilities:
Send data
Send data on socket
Send http request

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
mov ecx, dword [sym.imp.WS2_32.dll_send]
or esi, 0xffffffff
mov dword [ebp - 4], ebx
cmp dword [edi + 0x2c], 1
jne 0x41536d
mov eax, dword [ebx + 0x20]
cmp eax, 1
je 0x415480
cmp eax, 2
je 0x415660
cmp eax, 3
je 0x415778
mov esi, dword [ebx + 0x10]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415375
sub ecx, edx
cmp dword [edi + 0x18], 0
je 0x41539e
mov edx, dword [ebx + 8]
lea ebx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x415390
sub edx, ebx
add edx, 0x14
jmp 0x4153a0
xor edx, edx
lea eax, [ecx + 0x1e]
add eax, edx
push eax
call fcn.004246c2
add esp, 4
lea ecx, [esi + 1]
mov ebx, eax
mov al, byte [esi]
inc esi
test al, al
jne 0x4153b3
sub esi, ecx
cmp dword [edi + 0x18], 0
je 0x4153de
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
lea edx, [ecx + 1]
jmp 0x4153d0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4153d0
sub ecx, edx
add ecx, 0x14
jmp 0x4153e0
xor ecx, ecx
lea eax, [esi + 0x1e]
add eax, ecx
push eax
push 0
push ebx
call fcn.0042d5f0
mov eax, dword [ebp - 4]
add esp, 0xc
sub esp, 8
cmp dword [edi + 0x18], 0
movss xmm0, dword [eax + 4]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
je 0x41540f
push dword [eax + 0xc]
jmp 0x415412
push dword [eax + 0x10]
mov eax, dword [eax]
push dword [eax*4 + 0x443898]
push 0x444094
push ebx
call fcn.004255a0
mov ecx, dword [edi + 0x34]
mov esi, eax
mov eax, ecx
add esp, 0x18
sub eax, dword [edi + 0x38]
cmp eax, esi
jge 0x41544c
lea eax, [ecx + esi]
push eax
push dword [edi + 0x30]
call fcn.004258d4
add esp, 8
mov dword [edi + 0x30], eax
add dword [edi + 0x34], esi
mov eax, dword [edi + 0x30]
add eax, dword [edi + 0x38]
push esi
push ebx
push eax
call fcn.00426df0
add dword [edi + 0x38], esi
push ebx
call fcn.0042468a
mov ebx, dword [ebp - 4]
add esp, 0x10
or esi, 0xffffffff
mov dword [ebx + 0x20], 1
mov ecx, dword [sym.imp.WS2_32.dll_send]
lea esp, [esp]
cmp dword [edi + 0x40], 0
jne 0x415493
mov eax, dword [edi + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], 0
mov eax, dword [edi + 0x3c]
add eax, dword [edi + 0x30]
push 0
push dword [edi + 0x40]
push eax
push dword [edi + 0x1c]
call ecx
mov dword [edi + 0x48], eax
test eax, eax
jg 0x4154bd
call fcn.004259b3
mov ecx, 2
cmp dword [eax], 4
cmovne ecx, esi
jmp 0x4154cd
sub dword [edi + 0x40], eax
mov ecx, dword [edi + 0x40]
add dword [edi + 0x3c], eax
neg ecx
sbb ecx, ecx
add ecx, 2
cmp dword [edi + 0x2c], 1
jne 0x4154d8
cmp ecx, 1
je 0x4154e4
cmp ecx, 2
je 0x4154f0
cmp ecx, 1
jne 0x4154fa
jmp 0x415473
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x48], 0
je 0x4157f9
mov ecx, edi
call fcn.00416520
xor ecx, ecx
mov dword [ebp - 8], ecx
mov eax, dword [ebx + 0x1c]
mov ebx, dword [ecx + eax]
test ebx, ebx
je 0x415604
mov esi, ebx
lea edx, [esi + 1]
lea esp, [esp]
mov al, byte [esi]
inc esi
test al, al
jne 0x415520
sub esi, edx
test esi, esi
jle 0x415604
mov ecx, dword [edi + 0x34]
mov eax, ecx
sub eax, dword [edi + 0x38]
cmp eax, esi
jge 0x415552
lea eax, [ecx + esi]
push eax
push dword [edi + 0x30]
call fcn.004258d4
add esp, 8
mov dword [edi + 0x30], eax
add dword [edi + 0x34], esi
mov eax, dword [edi + 0x38]
add eax, dword [edi + 0x30]
push esi
push ebx
push eax
call fcn.00426df0
mov ecx, dword [edi + 0x34]
add esp, 0xc
add dword [edi + 0x38], esi
mov eax, ecx
sub eax, dword [edi + 0x38]
cmp eax, 2
jge 0x415589
lea eax, [ecx + 2]
push eax
push dword [edi + 0x30]
call fcn.004258d4
add esp, 8
mov dword [edi + 0x30], eax
add dword [edi + 0x34], 2
mov ecx, dword [edi + 0x38]
add ecx, dword [edi + 0x30]
mov ax, word [0x4440a8]
mov ebx, dword [ebp - 4]
mov word [ecx], ax
add dword [edi + 0x38], 2
mov ecx, dword [ebp - 8]
mov eax, dword [ebx + 0x1c]
mov edx, dword [ecx + eax + 0x400]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4155b1
sub ecx, esi
test ecx, ecx
jle 0x4155c9
push ecx
mov ecx, edi
call fcn.00416440
add esp, 4
mov ecx, dword [edi + 0x34]
mov eax, ecx
sub eax, dword [edi + 0x38]
cmp eax, 2
jge 0x4155ec
lea eax, [ecx + 2]
push eax
push dword [edi + 0x30]
call fcn.004258d4
add esp, 8
mov dword [edi + 0x30], eax
add dword [edi + 0x34], 2
mov ecx, dword [edi + 0x38]
add ecx, dword [edi + 0x30]
mov ax, word [0x43f6fc]
mov word [ecx], ax
add dword [edi + 0x38], 2
mov ecx, dword [ebp - 8]
jmp 0x415607
mov ebx, dword [ebp - 4]
add ecx, 4
mov dword [ebp - 8], ecx
cmp ecx, 0x400
jl 0x415506
mov ecx, dword [edi + 0x34]
mov eax, ecx
sub eax, dword [edi + 0x38]
cmp eax, 2
jge 0x41563c
lea eax, [ecx + 2]
push eax
push dword [edi + 0x30]
call fcn.004258d4
add esp, 8
mov dword [edi + 0x30], eax
add dword [edi + 0x34], 2
mov ecx, dword [edi + 0x38]
add ecx, dword [edi + 0x30]
mov ax, word [0x43f6fc]
mov word [ecx], ax
add dword [edi + 0x38], 2
or esi, 0xffffffff
mov dword [ebx + 0x20], 2
mov ecx, dword [sym.imp.WS2_32.dll_send]
nop
cmp dword [edi + 0x40], 0
jne 0x415673
mov eax, dword [edi + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], 0
mov eax, dword [edi + 0x3c]
add eax, dword [edi + 0x30]
push 0
push dword [edi + 0x40]
push eax
push dword [edi + 0x1c]
call ecx
mov dword [edi + 0x48], eax
test eax, eax
jg 0x41569d
call fcn.004259b3
mov ecx, 2
cmp dword [eax], 4
cmovne ecx, esi
jmp 0x4156ad
sub dword [edi + 0x40], eax
mov ecx, dword [edi + 0x40]
add dword [edi + 0x3c], eax
neg ecx
sbb ecx, ecx
add ecx, 2
cmp dword [edi + 0x2c], 1
jne 0x4156bc
cmp ecx, 1
je 0x4154e4
cmp ecx, 2
je 0x4156c8
cmp ecx, 1
jne 0x4156d2
jmp 0x415659
cmp dword [edi + 0x48], 0
je 0x4157f9
mov eax, dword [edi + 0x30]
test eax, eax
je 0x4156e2
push eax
call fcn.0042468a
add esp, 4
mov esi, dword [edi + 0x44]
push esi
call fcn.004246c2
push esi
push 0
push eax
mov dword [edi + 0x30], eax
call fcn.0042d5f0
mov eax, dword [edi + 0x44]
add esp, 0x10
mov dword [edi + 0x34], eax
mov edx, 0x4436ac
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov ecx, dword [ebx + 0x1c]
call fcn.00415200
test eax, eax
je 0x4157ed
mov ecx, dword [edi + 0x34]
mov eax, ecx
mov esi, dword [ebx + 0x18]
sub eax, dword [edi + 0x38]
mov ebx, dword [ebx + 0x14]
cmp eax, esi
jge 0x415751
lea eax, [ecx + esi]
push eax
push dword [edi + 0x30]
call fcn.004258d4
add esp, 8
mov dword [edi + 0x30], eax
add dword [edi + 0x34], esi
mov eax, dword [edi + 0x38]
add eax, dword [edi + 0x30]
push esi
push ebx
push eax
call fcn.00426df0
mov eax, dword [ebp - 4]
add esp, 0xc
add dword [edi + 0x38], esi
or esi, 0xffffffff
mov dword [eax + 0x20], 3
mov ecx, dword [sym.imp.WS2_32.dll_send]
cmp dword [edi + 0x40], 0
jne 0x41578b
mov eax, dword [edi + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], 0
mov eax, dword [edi + 0x3c]
add eax, dword [edi + 0x30]
push 0
push dword [edi + 0x40]
push eax
push dword [edi + 0x1c]
call ecx
mov dword [edi + 0x48], eax
test eax, eax
jg 0x4157b5
call fcn.004259b3
mov ecx, 2
cmp dword [eax], 4
cmovne ecx, esi
jmp 0x4157c5
sub dword [edi + 0x40], eax
mov ecx, dword [edi + 0x40]
add dword [edi + 0x3c], eax
neg ecx
sbb ecx, ecx
add ecx, 2
cmp dword [edi + 0x2c], 1
jne 0x4157d4
cmp ecx, 1
je 0x4154e4
cmp ecx, 2
je 0x4157e0
cmp ecx, 1
jne 0x4157e6
jmp 0x415772
cmp dword [edi + 0x48], 0
je 0x4157f9
mov ecx, edi
call fcn.00416520
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret