Function at 0x402d40
Capabilities:
Initialize winsock library
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1bc
mov eax, dword [0x418250]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x194]
push eax
xor ebx, ebx
push 0x101
mov dword [ebp - 0x198], edi
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1ac], str.metallica
mov dword [ebp - 0x1b0], ebx
call sub.WS2_32.dll_WSAStartup
test eax, eax
jne 0x402dc4
mov eax, dword [ebp - 0x194]
cmp al, 1
jne 0x402dbf
shr eax, 8
cmp al, 1
je 0x402dc4
call sub.WS2_32.dll_WSACleanup
push 0x14
call fcn.004057d0
add esp, 4
push 0x14
test eax, eax
je 0x40383e
xorps xmm0, xmm0
movq qword [eax], xmm0
movq qword [eax + 8], xmm0
mov dword [eax + 0x10], ebx
mov dword [0x41d1bc], eax
call fcn.004057d0
add esp, 4
test eax, eax
je 0x4038ef
xorps xmm0, xmm0
movq qword [eax], xmm0
movq qword [eax + 8], xmm0
mov dword [eax + 0x10], ebx
push 0x2004
mov dword [0x41d1c0], eax
call fcn.004057d0
add esp, 4
mov esi, eax
push 0x2004
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
push 0x2004
mov dword [0x41f000], esi
call fcn.004057d0
add esp, 0x10
mov esi, eax
push 0x2004
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
push 0x108
mov dword [0x41effc], esi
call fcn.004057d0
add esp, 0x10
mov esi, eax
push 0x108
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
push 0x108
mov dword [0x41eff8], esi
call fcn.004057d0
add esp, 0x10
mov esi, eax
push 0x108
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
push 0x4c
mov dword [0x41eff4], esi
call fcn.004057d0
add esp, 0x10
mov esi, eax
push 0x4c
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
push 1
mov dword [0x41d1cc], esi
call fcn.004057d0
mov dword [0x41eff0], eax
add esp, 0x10
mov byte [eax], 1
call fcn.0040651c
mov dword [eax], ebx
mov dword [0x418020], 4
nop
mov esi, dword [ebp + 8]
cmp esi, 1
jne 0x40304a
mov esi, dword [edi]
push 0x204
call fcn.004057d0
add esp, 4
mov edi, eax
mov dword [ebp - 0x198], edi
push 0x204
test edi, edi
je 0x40383e
push 0
push edi
call fcn.00407370
push 0x2004
mov dword [edi], esi
call fcn.004057d0
add esp, 0x10
mov esi, eax
push 0x2004
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
add esp, 0xc
mov dword [edi + 4], esi
push str.Cmd_line:
call fcn.0040617e
add eax, 0x40
push eax
call fcn.0040625a
call fcn.0040617e
add eax, 0x40
push eax
call fcn.00406f90
push 0x2000
push esi
push 0
call fcn.0040e2eb
mov edx, eax
add esp, 0x18
mov dword [0x41d1a8], edx
test edx, edx
je 0x40381d
cmp edx, 0x2000
jbe 0x402fb1
xor eax, eax
jmp 0x402fd9
mov ecx, edx
mov eax, esi
test ecx, ecx
jle 0x402fcb
lea esp, [esp]
cmp byte [eax], 0xa
je 0x403032
dec ecx
inc eax
test ecx, ecx
jg 0x402fc0
mov eax, edx
test eax, eax
je 0x402fd9
sub edx, eax
mov dword [0x41d1a8], edx
test edx, edx
je 0x402fef
push edx
add eax, esi
push eax
push dword [0x41f000]
call fcn.00405aa0
add esp, 0xc
push 0xa
push dword [edi + 4]
call fcn.00406930
add esp, 8
test eax, eax
je 0x403003
mov byte [eax], 0
push 0xd
push dword [edi + 4]
call fcn.00406930
add esp, 8
test eax, eax
je 0x403017
mov byte [eax], 0
mov eax, dword [edi + 4]
inc eax
mov esi, 2
cmp byte [eax], 0
mov dword [ebp + 8], esi
je 0x40304a
cmp byte [eax], 0x20
jne 0x403037
mov byte [eax], 0
jmp 0x403041
sub eax, esi
inc eax
jmp 0x402fcd
cmp byte [eax - 1], 0
jne 0x403041
mov dword [edi + esi*4], eax
inc esi
inc eax
cmp byte [eax], 0
jne 0x403028
mov dword [ebp + 8], esi
push str.ade:g:G:hi:k:lLno:p:rs:tuvw:z
push edi
push esi
call fcn.00402100
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x19c], edi
cmp edi, 0xffffffff
je 0x403309
lea ebx, [ebx]
lea eax, [edi - 0x47]
cmp eax, 0x33
ja case.0x403083.72
movzx eax, byte [eax + 0x403950]
jmp dword [eax*4 + 0x4038fc]
mov eax, dword [0x41d17c]
mov dword [0x41d1fc], eax
jmp 0x4032e4
inc word [0x41d1dc]
mov dword [ebp - 0x1b0], 1
jmp 0x4032e4
call dword [sym.imp.KERNEL32.dll_FreeConsole]
jmp 0x4032e4
push dword [0x41d17c]
call fcn.004059cc
add esp, 4
test eax, eax
je 0x403827
mov ecx, eax
and ecx, 0x1c
cmp eax, ecx
jne 0x403827
mov dword [0x418020], eax
jmp 0x4032e4
cmp dword [0x41d1a4], 8
jg 0x403832
cmp dword [0x41d1c4], 0
jne 0x403127
push 0x2c
call fcn.004057d0
add esp, 4
mov esi, eax
push 0x2c
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
mov dword [0x41d1c4], esi
mov esi, dword [ebp + 8]
add esp, 0xc
movzx eax, word [0x41d1e0]
push eax
push dword [0x41d17c]
call fcn.00402830
add esp, 8
test eax, eax
je 0x403150
mov edx, dword [0x41d1a4]
mov ecx, dword [0x41d1c4]
mov dword [ecx + edx*4], eax
inc dword [0x41d1a4]
jmp 0x4032e4
push dword [0x41d17c]
call fcn.004059cc
and eax, 0xffff
imul eax, eax, 0x3e8
add esp, 4
mov dword [0x41d1d8], eax
test eax, eax
jne 0x4032e4
push dword [0x41d17c]
push str.invalid_interval_time__s
call fcn.004021c0
mov eax, dword [0x41d17c]
mov dword [ebp - 0x1ac], eax
cmp eax, 0x41144c
jne 0x4032e4
mov dword [ebp - 0x1ac], str.metallica
jmp 0x4032e4
inc word [0x41d1dc]
jmp 0x4032e4
inc word [0x41d1e0]
jmp 0x4032e4
mov eax, dword [0x41d17c]
inc word [0x41d1e4]
mov dword [0x41d1d0], eax
jmp 0x4032e4
push 0
push dword [0x41d17c]
call fcn.00402a90
movzx eax, ax
add esp, 8
mov dword [ebp - 0x1a8], eax
test ax, ax
jne 0x4032e4
push dword [0x41d17c]
push str.invalid_local_port__s
call fcn.004021c0
inc word [0x41d1e8]
jmp 0x4032e4
movzx eax, word [0x41d1e0]
push eax
push dword [0x41d17c]
call fcn.00402830
add esp, 8
add eax, 0x1c0
mov dword [ebp - 0x1b8], eax
jmp 0x4032e4
inc word [0x41d198]
jmp 0x4032e4
inc word [0x41d1ec]
jmp 0x4032e4
inc word [0x41d1f0]
jmp 0x4032e4
push dword [0x41d17c]
call fcn.004059cc
add esp, 4
mov dword [0x41d1f4], eax
test eax, eax
je 0x403848
push 0xc
call fcn.004057d0
add esp, 4
push 0xc
test eax, eax
je 0x40383e
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 8], 0
mov dword [0x41d1b4], eax
call fcn.004057d0
add esp, 4
test eax, eax
je 0x40383c
xorps xmm0, xmm0
movq qword [eax], xmm0
mov dword [eax + 8], 0
mov ecx, dword [0x41d1f4]
mov dword [0x41d1b8], eax
mov eax, dword [0x41d1b4]
mov dword [eax], ecx
jmp 0x4032e4
inc word [0x41d1f8]
push str.ade:g:G:hi:k:lLno:p:rs:tuvw:z
push dword [ebp - 0x198]
push esi
call fcn.00402100
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x19c], eax
cmp edi, 0xffffffff
jne 0x403070
push dword [ebp - 0x1ac]
call fcn.00401660
add esp, 4
cmp word [0x41d1e8], 0
je 0x403355
push 0
call fcn.00406b84
push eax
call fcn.00405a0c
push 0x10004
call fcn.004057d0
add esp, 0xc
mov ebx, eax
push 0x10004
test ebx, ebx
je 0x40383e
push 0
push ebx
call fcn.00407370
add esp, 0xc
cmp dword [0x41d1fc], 0
je 0x40336d
xor eax, eax
mov word [0x41d1e4], ax
mov dword [0x41d1a0], eax
jmp 0x4033c3
cmp word [0x41d1e4], 0
je 0x4033c3
push 0x1b4
push 0x301
push dword [0x41d1d0]
call fcn.0040fa6f
add esp, 0xc
mov dword [0x41d1a0], eax
test eax, eax
jle 0x403887
push 0x68
call fcn.004057d0
add esp, 4
mov esi, eax
push 0x68
test esi, esi
je 0x40383e
push 0
push esi
call fcn.00407370
add esp, 0xc
mov dword [0x41d1d0], esi
mov eax, dword [0x41d180]
mov ecx, dword [ebp - 0x198]
mov ecx, dword [ecx + eax*4]
test ecx, ecx
je 0x4033f5
movzx eax, word [0x41d1e0]
push eax
push ecx
call fcn.00402830
mov ecx, eax
mov eax, dword [0x41d180]
add esp, 8
mov dword [ebp - 0x1a4], ecx
jmp 0x4033fb
mov ecx, dword [ebp - 0x1a4]
mov esi, dword [ebp - 0x1a0]
test ecx, ecx
je 0x403414
add ecx, 0x1c0
cmovne esi, ecx
mov dword [ebp - 0x1a0], esi
test esi, esi
je 0x40341e
inc eax
mov dword [0x41d180], eax
call fcn.0040651c
mov dword [eax], 0
cmp word [0x41d1dc], 0
je 0x4034f1
mov eax, dword [0x41d180]
mov edx, dword [ebp - 0x198]
xor ecx, ecx
mov eax, dword [edx + eax*4]
test eax, eax
je 0x403461
push ecx
push eax
call fcn.00402a90
movzx ecx, ax
add esp, 8
test cx, cx
je 0x403897
mov eax, dword [ebp - 0x1a8]
movzx eax, ax
push eax
push dword [ebp - 0x1b8]
movzx eax, cx
push eax
push esi
call fcn.00402480
add esp, 0x10
mov dword [0x418008], eax
test eax, eax
jle 0x4038af
cmp dword [0x41d1fc], 0
je 0x4034ab
push eax
call fcn.00401490
add esp, 4
cmp dword [0x41d1fc], 0
jne 0x4034b6
mov eax, dword [0x418008]
push eax
call fcn.00403b40
add esp, 4
mov edi, eax
cmp word [0x41d1f0], 1
jbe 0x4034d9
push dword [0x41d1ac]
push dword [0x41d1b0]
push str._sent__d__rcvd__d
call fcn.00402c20
add esp, 0xc
cmp dword [ebp - 0x1b0], 1
jne 0x4038ce
mov edi, dword [ebp - 0x198]
jmp 0x402f00
test esi, esi
je 0x4038e5
mov eax, dword [0x41d180]
mov ecx, dword [ebp - 0x198]
cmp dword [ecx + eax*4], 0
lea eax, [ecx + eax*4]
je 0x4038db
cmp dword [eax + 4], 0
je 0x403520
xor ecx, ecx
mov word [0x418024], cx
cmp dword [eax], 0
mov ecx, dword [ebp - 0x1a8]
movzx ecx, cx
mov dword [ebp - 0x1b4], ecx
je 0x4037d2
push 0x2d
push dword [eax]
xor edi, edi
call fcn.00406930
mov esi, eax
add esp, 8
test esi, esi
je 0x403566
mov byte [esi], 0
inc esi
push edi
push esi
call fcn.00402a90
movzx edi, ax
add esp, 8
test di, di
je 0x4038b9
mov eax, dword [0x41d180]
mov ecx, dword [ebp - 0x198]
push 0
push dword [ecx + eax*4]
call fcn.00402a90
movzx esi, ax
add esp, 8
test si, si
je 0x403897
cmp di, si
jbe 0x4035bf
xor eax, eax
cmp word [0x41d1e8], 0
mov word [0x418024], ax
movzx eax, di
je 0x4035c1
movzx eax, di
push eax
mov ecx, esi
push ecx
push ebx
call fcn.00402cd0
push ebx
call fcn.00403990
add esp, 0x10
movzx eax, ax
jmp 0x4035c1
mov eax, esi
mov ecx, esi
movzx esi, ax
mov dword [ebp - 0x1bc], ecx
cmp ecx, esi
jg 0x4037ae
cmp word [ebp - 0x1a8], 0
jne 0x403608
cmp word [0x41d1e8], 0
je 0x403608
call fcn.004059e9
movzx eax, ax
mov ecx, 0x2000
mov dword [ebp - 0x1b4], eax
cmp ax, cx
jae 0x403608
add eax, ecx
mov dword [ebp - 0x1b4], eax
push esi
push 0
call fcn.00402a90
movzx esi, ax
mov eax, dword [ebp - 0x1b4]
movzx eax, ax
push eax
push dword [ebp - 0x1b8]
mov edi, esi
push edi
push dword [ebp - 0x1a0]
call fcn.00402260
add esp, 0x18
mov dword [0x418008], eax
test eax, eax
jle 0x4036d9
cmp word [0x41d1f8], 0
je 0x403669
cmp word [0x41d1ec], 0
je 0x403669
push dword [ebp - 0x1a0]
push eax
call fcn.00404040
add esp, 8
mov dword [0x418008], eax
test eax, eax
jle 0x4036d9
push dword [0x41d1cc]
mov dword [ebp - 0x19c], 0
push edi
mov edi, dword [ebp - 0x1a4]
lea eax, [edi + 0x100]
push eax
push edi
push str._s___s___d___s__open
call fcn.00402c20
mov eax, dword [0x41d1fc]
add esp, 0x14
test eax, eax
je 0x4036b5
push dword [0x418008]
call fcn.00401490
mov eax, dword [0x41d1fc]
add esp, 4
cmp word [0x41d1f8], 0
jne 0x403725
test eax, eax
jne 0x403725
push dword [0x418008]
call fcn.00403b40
add esp, 4
mov dword [ebp - 0x19c], eax
jmp 0x403725
cmp word [0x418024], 0
mov dword [ebp - 0x19c], 1
jne 0x403703
cmp word [0x41d1f0], 1
ja 0x403703
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x274d
je 0x403725
push dword [0x41d1cc]
mov ecx, dword [ebp - 0x1a4]
push edi
lea eax, [ecx + 0x100]
push eax
push ecx
push str._s___s___d___s_
call fcn.00402c20
add esp, 0x14
push dword [0x418008]
call sub.WS2_32.dll_closesocket
mov eax, dword [0x41d1d8]
test eax, eax
je 0x403742
push eax
call fcn.00406912
add esp, 4
cmp word [0x41d1e8], 0
je 0x403799
mov esi, 0x11170
call fcn.004059e9
and eax, 0xffff
cmp byte [eax + ebx], 1
je 0x40377b
dec esi
jne 0x403751
mov eax, 0xffff
lea esp, [esp]
cmp byte [eax + ebx], 1
je 0x403788
dec eax
jne 0x403770
jmp 0x40378c
mov byte [eax + ebx], 2
test eax, eax
je 0x403764
movzx esi, ax
jmp 0x40379f
mov byte [eax + ebx], 2
test eax, eax
je 0x403795
movzx esi, ax
jmp 0x40379f
xor esi, esi
jmp 0x40379f
add esi, 0xffff
movzx esi, si
cmp dword [ebp - 0x1bc], esi
jle 0x4035d4
mov eax, dword [0x41d180]
mov ecx, dword [ebp - 0x198]
inc eax
mov dword [0x41d180], eax
cmp dword [ecx + eax*4], 0
lea eax, [ecx + eax*4]
jne 0x403538
mov edi, dword [ebp - 0x19c]
call fcn.0040651c
mov dword [eax], 0
cmp word [0x41d1f0], 1
jbe 0x403800
push dword [0x41d1ac]
push dword [0x41d1b0]
push str.sent__d__rcvd__d
call fcn.00402c20
add esp, 0xc
call sub.WS2_32.dll_WSACleanup
cmp dword [ebp - 0x1b0], 1
jne 0x4038c4
mov edi, dword [ebp - 0x198]
jmp 0x402f00
push str.wrong
call fcn.004021c0
push eax
push str.invalid_hop_pointer__d__must_be_multiple_of_4___28
call fcn.004021c0
push str.too_many__g_hops
call fcn.004021c0
push 0xc
push str.Hmalloc__d_failed
call fcn.004021c0
push dword [0x41d17c]
push str.invalid_wait_time__s
call fcn.004021c0
push str.all_A_records_NIY
call fcn.004021c0
call fcn.0040651c
mov dword [eax], 0
call fcn.00402bc0
call fcn.0040651c
push str.nc__h_for_help
mov dword [eax], 0
call fcn.004021c0
push dword [0x41d1d0]
push str.cant_open__s
call fcn.004021c0
mov eax, dword [0x41d180]
mov ecx, dword [ebp - 0x198]
push dword [ecx + eax*4]
push str.invalid_port__s
call fcn.004021c0
push str.no_connection
call fcn.004021c0
push esi
push str.invalid_port__s
call fcn.004021c0
cmp word [0x418024], 0
je 0x4038d4
push edi
call fcn.004068fe
push 0
call fcn.004068fe
push str.no_port_s__to_connect_to
call fcn.004021c0
push str.no_destination
call fcn.004021c0
push 0x14
push str.Hmalloc__d_failed
call fcn.004021c0
nop
mov edx, 0x99004030
xor byte [eax], al
pop eax
cmp byte [eax], al
scasd eax, dword es:[edi]
xor byte [eax], al
mov dh, byte [eax]
inc eax
add bh, ah
xor byte [eax], al
bound edi, qword [eax]
inc eax
add byte [ebx + 0x31], bl
inc eax
add byte [ecx - 0x49ffbfcf], dl
xor dword [eax], eax
ret 0x4031