Function at 0x4aa920
Capabilities:
Send data
Send data on socket
Terminate process

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
mov ebx, 1
mov dword [esp + 0x10], ebx
push esi
push edi
test ebp, 0x40000000
je 0x4aa94a
xor ebp, 0x40000000
mov eax, ebx
mov dword [esp + 0x34], ebp
jmp 0x4aa94c
xor eax, eax
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x4aab03
cmp dword [esi + 0x21c], 0
je 0x4aaab2
test eax, eax
jne 0x4aa97b
push 0xffffffffffffffff
push dword [esi + 0x204]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test ebp, ebp
je 0x4aa9af
lea edi, [esp + 0x34]
mov eax, dword [edi + 8]
lea edi, [edi + 0xc]
mov ebx, dword [edi - 8]
push eax
push ebx
push dword [esi + 0x21c]
call fcn.00563620
add esp, 0xc
cmp dword [edi], 0
jne 0x4aa9aa
push ebx
call fcn.0058c812
add esp, 4
sub ebp, 1
jne 0x4aa983
cmp dword [esi + 0x200], 0
mov eax, dword [esi + 0x230]
jne 0x4aaa64
cmp dword [eax], 0
jbe 0x4aaaa1
push 0xf
push dword [esi + 0x228]
call fcn.004df5f0
mov eax, dword [esi + 0x230]
add esp, 8
push 0
push dword [eax]
push dword [eax + 4]
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_send]
mov edi, eax
test edi, edi
jle 0x4aaa03
mov eax, dword [esi + 0x230]
cmp edi, dword [eax]
jl 0x4aaa12
test edi, edi
jns 0x4aaa70
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x4aaa70
push 0x30
call fcn.0058db11
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4aadce
push 0x30
push 0
push ebx
call fcn.00587250
add esp, 0xc
mov dword [ebx + 0x28], 3
mov dword [esi + 0x200], ebx
mov dword [esi + 0x1fc], ebx
test edi, edi
jle 0x4aaa69
mov eax, dword [esi + 0x230]
add dword [eax + 4], edi
mov eax, dword [esi + 0x230]
sub dword [eax], edi
add dword [esi + 0x34], edi
mov eax, dword [esi + 0x230]
mov eax, dword [eax]
mov dword [esi + 0x30], eax
xor ebx, ebx
jmp 0x4aad77
mov eax, dword [esi + 0x230]
cmp edi, dword [eax]
jne 0x4aaaa1
mov dword [eax], 0
mov ebx, 1
mov eax, dword [esi + 0x230]
add dword [eax + 4], edi
mov eax, dword [esi + 0x230]
add dword [esi + 0x34], edi
mov eax, dword [eax]
mov dword [esi + 0x30], eax
jmp 0x4aad77
mov ecx, esi
mov ebx, 0xfffffffc
call fcn.004aa8d0
jmp 0x4aad77
test eax, eax
jne 0x4aaac4
push 0xffffffffffffffff
push dword [esi + 0x204]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [esi + 0x2c], 0xffffffff
jne 0x4aab10
test ebp, ebp
je 0x4aaaec
lea edi, [esp + 0x34]
cmp dword [edi + 0xc], 0
lea edi, [edi + 0xc]
mov eax, dword [edi - 8]
jne 0x4aaae7
push eax
call fcn.0058c812
add esp, 4
sub ebp, 1
jne 0x4aaad2
cmp dword [esp + 0x1c], 0
jne 0x4aab03
push 0
push 1
push dword [esi + 0x204]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov dword [esp + 0x24], 0
test ebp, ebp
je 0x4aad77
lea eax, [esp + 0x34]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 8]
add eax, 0xc
cmp dword [esi + 0x200], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], eax
jne 0x4aaca2
cmp dword [esi + 0x1e4], 0
je 0x4aaca2
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4aab84
movzx ecx, word [edi]
cmp ecx, 1
je 0x4aab84
cmp ecx, 0x17
mov eax, 0x10
mov ecx, 0x1c
cmove eax, ecx
push eax
push edi
push 0
push ebx
push edx
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_sendto]
jmp 0x4aab91
push 0
push ebx
push edx
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_send]
mov edi, eax
test edi, edi
jle 0x4aab9d
cmp edi, ebx
jl 0x4aabb4
test edi, edi
jns 0x4aac4e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x4aac4e
xor eax, eax
test edi, edi
push 0x30
cmovns eax, edi
mov edi, eax
call fcn.0058db11
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4aadce
push 0x30
push 0
push ebx
call fcn.00587250
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x20]
mov edx, dword [ecx]
cmp edx, 2
jne 0x4aac29
sub eax, edi
push eax
mov dword [ebx + 4], eax
call fcn.0058db11
add esp, 4
mov dword [esp + 0x20], eax
mov dword [ebx], eax
test eax, eax
je 0x4aae0f
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
add eax, edi
push edx
push eax
call fcn.00401000
add esp, 8
mov dword [ebx + 0x28], 0
jmp 0x4aac38
mov ecx, dword [esp + 0x2c]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dword [ebx + 8], edi
mov dword [ebx + 0x28], edx
mov dword [esi + 0x200], ebx
mov dword [esi + 0x1fc], ebx
mov dword [esp + 0x18], 0
jmp 0x4aac82
cmp edi, ebx
jne 0x4aac73
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], 1
mov edx, dword [ecx]
test edx, edx
jne 0x4aac82
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0058c812
add esp, 4
jmp 0x4aac82
mov ecx, esi
mov dword [esp + 0x18], 0xfffffffc
call fcn.004aa8d0
test edi, edi
jle 0x4aad5d
add dword [esi + 0x34], edi
sub dword [esi + 0x30], edi
jns 0x4aad5d
mov dword [esi + 0x30], 0
jmp 0x4aad5d
push 0x30
call fcn.0058db11
mov edi, eax
add esp, 4
test edi, edi
je 0x4aadce
push 0x30
push 0
push edi
call fcn.00587250
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [edi + 4], ebx
add dword [esi + 0x30], ebx
mov eax, dword [ecx]
cmp eax, 2
jne 0x4aad05
push dword [edi + 4]
call fcn.0058db11
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x4aae50
mov ecx, dword [esp + 0x2c]
mov edx, dword [edi + 4]
push ebx
push ecx
mov ecx, eax
call fcn.00401000
add esp, 8
mov dword [edi + 0x28], 0
jmp 0x4aad0e
mov ecx, dword [esp + 0x2c]
mov dword [edi], ecx
mov dword [edi + 0x28], eax
mov ecx, dword [esp + 0x30]
mov dword [edi + 8], 0
test ecx, ecx
je 0x4aad3b
cmp word [ecx], 0x17
mov edx, 0x1c
mov eax, 0x10
cmove eax, edx
push eax
push ecx
lea ecx, [edi + 0xc]
call fcn.00401000
add esp, 8
mov dword [edi + 0x2c], 0
mov eax, dword [esi + 0x200]
test eax, eax
jne 0x4aad5a
mov dword [esi + 0x200], edi
mov dword [esi + 0x1fc], edi
jmp 0x4aad5d
mov dword [eax + 0x2c], edi
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, ebp
jae 0x4aad73
mov eax, dword [esp + 0x14]
jmp 0x4aab24
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
jne 0x4aad8e
push 0
push 1
push dword [esi + 0x204]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
cmp ebx, 1
je 0x4aadc4
mov edi, dword [esi + 0xc]
cmp dword [edi + 8], 0
je 0x4aadc4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 8], eax
je 0x4aadc4
mov esi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4aadb7
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push esi
push eax
push 0x4af5c0
call dword [sym.imp.KERNEL32.dll_QueueUserAPC]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x18
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x4c4
mov edx, 0x624148
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0x4c4
push 0x624164
push 0x624180
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x2c5
mov edx, 0x623684
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0x2c5
push 0x6236a4
push 0x6236c4
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x297
mov edx, 0x623620
xor ecx, ecx
call fcn.004b4f80
add esp, 0xc
push 0x297
push 0x623640
push 0x623660
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.005885bd
int3