Function at 0x4aa1b0
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 0x4aa1da
xor ebp, 0x40000000
mov eax, ebx
mov dword [esp + 0x34], ebp
jmp 0x4aa1dc
xor eax, eax
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x4aa393
cmp dword [esi + 0x21c], 0
je 0x4aa342
test eax, eax
jne 0x4aa20b
push 0xffffffffffffffff
push dword [esi + 0x204]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test ebp, ebp
je 0x4aa23f
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.00562d90
add esp, 0xc
cmp dword [edi], 0
jne 0x4aa23a
push ebx
call fcn.0058bf82
add esp, 4
sub ebp, 1
jne 0x4aa213
cmp dword [esi + 0x200], 0
mov eax, dword [esi + 0x230]
jne 0x4aa2f4
cmp dword [eax], 0
jbe 0x4aa331
push 0xf
push dword [esi + 0x228]
call fcn.004ded20
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 0x4aa293
mov eax, dword [esi + 0x230]
cmp edi, dword [eax]
jl 0x4aa2a2
test edi, edi
jns 0x4aa300
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x4aa300
push 0x30
call fcn.0058d200
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4aa65e
push 0x30
push 0
push ebx
call fcn.005869c0
add esp, 0xc
mov dword [ebx + 0x28], 3
mov dword [esi + 0x200], ebx
mov dword [esi + 0x1fc], ebx
test edi, edi
jle 0x4aa2f9
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 0x4aa607
mov eax, dword [esi + 0x230]
cmp edi, dword [eax]
jne 0x4aa331
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 0x4aa607
mov ecx, esi
mov ebx, 0xfffffffc
call fcn.004aa160
jmp 0x4aa607
test eax, eax
jne 0x4aa354
push 0xffffffffffffffff
push dword [esi + 0x204]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [esi + 0x2c], 0xffffffff
jne 0x4aa3a0
test ebp, ebp
je 0x4aa37c
lea edi, [esp + 0x34]
cmp dword [edi + 0xc], 0
lea edi, [edi + 0xc]
mov eax, dword [edi - 8]
jne 0x4aa377
push eax
call fcn.0058bf82
add esp, 4
sub ebp, 1
jne 0x4aa362
cmp dword [esp + 0x1c], 0
jne 0x4aa393
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 0x4aa607
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 0x4aa532
cmp dword [esi + 0x1e4], 0
je 0x4aa532
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4aa414
movzx ecx, word [edi]
cmp ecx, 1
je 0x4aa414
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 0x4aa421
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 0x4aa42d
cmp edi, ebx
jl 0x4aa444
test edi, edi
jns 0x4aa4de
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x4aa4de
xor eax, eax
test edi, edi
push 0x30
cmovns eax, edi
mov edi, eax
call fcn.0058d200
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4aa65e
push 0x30
push 0
push ebx
call fcn.005869c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x20]
mov edx, dword [ecx]
cmp edx, 2
jne 0x4aa4b9
sub eax, edi
push eax
mov dword [ebx + 4], eax
call fcn.0058d200
add esp, 4
mov dword [esp + 0x20], eax
mov dword [ebx], eax
test eax, eax
je 0x4aa69f
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 0x4aa4c8
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 0x4aa512
cmp edi, ebx
jne 0x4aa503
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], 1
mov edx, dword [ecx]
test edx, edx
jne 0x4aa512
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0058bf82
add esp, 4
jmp 0x4aa512
mov ecx, esi
mov dword [esp + 0x18], 0xfffffffc
call fcn.004aa160
test edi, edi
jle 0x4aa5ed
add dword [esi + 0x34], edi
sub dword [esi + 0x30], edi
jns 0x4aa5ed
mov dword [esi + 0x30], 0
jmp 0x4aa5ed
push 0x30
call fcn.0058d200
mov edi, eax
add esp, 4
test edi, edi
je 0x4aa65e
push 0x30
push 0
push edi
call fcn.005869c0
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 0x4aa595
push dword [edi + 4]
call fcn.0058d200
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x4aa6e0
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 0x4aa59e
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 0x4aa5cb
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 0x4aa5ea
mov dword [esi + 0x200], edi
mov dword [esi + 0x1fc], edi
jmp 0x4aa5ed
mov dword [eax + 0x2c], edi
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, ebp
jae 0x4aa603
mov eax, dword [esp + 0x14]
jmp 0x4aa3b4
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x1c], 0
jne 0x4aa61e
push 0
push 1
push dword [esi + 0x204]
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
cmp ebx, 1
je 0x4aa654
mov edi, dword [esi + 0xc]
cmp dword [edi + 8], 0
je 0x4aa654
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 8], eax
je 0x4aa654
mov esi, dword [esi + 0xc]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4aa647
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push esi
push eax
push 0x4aee50
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, 0x61c4e8
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x4c4
push 0x61c504
push 0x61c520
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x2c5
mov edx, 0x61ba24
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x2c5
push 0x61ba44
push 0x61ba64
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x297
mov edx, 0x61b9c0
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x297
push 0x61b9e0
push 0x61ba00
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
int3