Function at 0x40105a
Capabilities:
Initialize winsock library
Read file on windows
Terminate process

Disassembly:
jmp 0x403e90
jmp 0x403e20
push str._darkST
mov word [0x412bbc], 1
call fcn.0040107d
push str._t_d_t_t
call fcn.0040107d
push str._t_e_prog_t_t
call fcn.0040107d
push str._t_g_gateway_t
call fcn.0040107d
push str._t_t_t_t
call fcn.0040107d
push str._t_u_t_tUDP__n_t_v_t_t
call fcn.0040107d
add esp, 0x18
push 0x40fa94
call fcn.0040105f
int3
sub esp, 0x1ac
push ebx
xor ebx, ebx
lea eax, [esp + 0x20]
push eax
push 0x101
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebx
call sub.WSOCK32.dll_WSAStartup
test eax, eax
jne 0x403ed6
mov ax, word [esp + 0x20]
cmp al, 1
jne 0x403ed1
cmp ah, al
je 0x403ed6
call sub.WSOCK32.dll_WSACleanup
push 0x14
call fcn.00405027
add esp, 4
cmp eax, ebx
push 0x14
je 0x4049d0
xor ecx, ecx
mov edx, eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ecx
mov dword [0x412b88], eax
call fcn.00405027
add esp, 4
cmp eax, ebx
je 0x4049ce
xor ecx, ecx
mov edx, eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ecx
push 0x2004
mov dword [0x412b8c], eax
call fcn.00405027
mov edx, eax
add esp, 4
cmp edx, ebx
je 0x4049bf
push edi
xor eax, eax
mov edi, edx
mov ecx, 0x801
rep stosd dword es:[edi], eax
push 0x2004
mov dword [0x412e98], edx
call fcn.00405027
mov edx, eax
add esp, 4
cmp edx, ebx
je 0x4049b0
xor eax, eax
mov edi, edx
mov ecx, 0x801
rep stosd dword es:[edi], eax
push 0x108
mov dword [0x412ee0], edx
call fcn.00405027
add esp, 4
mov edx, eax
cmp edx, ebx
push 0x108
je 0x4049b5
xor eax, eax
mov edi, edx
mov ecx, 0x42
rep stosd dword es:[edi], eax
mov dword [0x412ee8], edx
call fcn.00405027
mov edx, eax
add esp, 4
cmp edx, ebx
je 0x4049a1
xor eax, eax
mov edi, edx
mov ecx, 0x42
rep stosd dword es:[edi], eax
push 0x4c
mov dword [0x412e78], edx
call fcn.00405027
mov edx, eax
add esp, 4
cmp edx, ebx
je 0x404995
xor eax, eax
mov edi, edx
push esi
mov ecx, 0x13
rep stosd dword es:[edi], eax
push 1
mov dword [0x412b98], edx
call fcn.00405027
add esp, 4
mov dword [0x412eec], eax
mov byte [eax], 1
mov dword [0x412be8], ebx
mov dword [0x411a64], 4
push ebp
mov esi, dword [esp + 0x1c0]
lea esp, [esp]
cmp esi, 1
jne 0x40416c
mov eax, dword [esp + 0x1c4]
mov esi, dword [eax]
push 0x204
call fcn.00405027
mov ebp, eax
add esp, 4
cmp ebp, ebx
je 0x404883
xor eax, eax
mov ecx, 0x81
mov edi, ebp
rep stosd dword es:[edi], eax
push 0x2004
mov dword [esp + 0x1c8], ebp
mov dword [ebp], esi
call fcn.00405027
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x404874
xor eax, eax
mov ecx, 0x801
mov edi, esi
push 0x40ff90
rep stosd dword es:[edi], eax
push 0x411ae8
mov dword [ebp + 4], esi
call fcn.00404ed3
push 0x411ae8
call fcn.0040509b
push 0x2000
push esi
push ebx
call fcn.00409983
add esp, 0x18
cmp eax, ebx
mov dword [0x412b74], eax
jbe 0x40486a
cmp eax, 0x2000
jbe 0x4040c3
xor edx, edx
jmp 0x4040e8
mov ecx, eax
cmp ecx, ebx
mov edx, esi
jle 0x4040db
jmp 0x4040d0
cmp byte [edx], 0xa
je 0x40414a
inc edx
dec ecx
cmp ecx, ebx
jg 0x4040d0
mov edx, eax
cmp edx, ebx
je 0x4040e8
sub eax, edx
mov dword [0x412b74], eax
cmp eax, ebx
je 0x404104
mov edi, dword [0x412e98]
add esi, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
push 0xa
push eax
call fcn.00405890
add esp, 8
cmp eax, ebx
je 0x404119
mov byte [eax], 0
mov ecx, dword [ebp + 4]
push 0xd
push ecx
call fcn.00405890
add esp, 8
cmp eax, ebx
je 0x40412e
mov byte [eax], 0
mov eax, dword [ebp + 4]
mov dl, byte [eax + 1]
inc eax
test dl, dl
mov ecx, 2
je 0x404163
mov edi, edi
cmp byte [eax], 0x20
jne 0x40414f
mov byte [eax], 0
jmp 0x40415b
sub edx, esi
inc edx
jmp 0x4040dd
mov dl, byte [eax - 1]
test dl, dl
jne 0x40415b
mov dword [ebp + ecx*4], eax
inc ecx
mov dl, byte [eax + 1]
inc eax
test dl, dl
jne 0x404140
mov esi, ecx
mov dword [esp + 0x1c0], esi
mov edx, dword [esp + 0x1c4]
push str.ade:g:G:hi:lLno:p:rs:tuvw:z
push edx
push esi
call fcn.00401073
mov ebp, eax
add esp, 0xc
cmp ebp, 0xffffffff
je 0x4043f5
lea ecx, [ecx]
lea eax, [ebp - 0x47]
cmp eax, 0x33
ja case.0x4041a3.72
movzx eax, byte [eax + 0x404a2c]
jmp dword [eax*4 + 0x4049dc]
mov ecx, dword [0x412b54]
mov dword [0x412bc8], ecx
jmp 0x4043d4
inc word [0x412ba8]
mov dword [esp + 0x1c], 1
jmp 0x4043d4
call dword [sym.imp.KERNEL32.dll_FreeConsole]
jmp 0x4043d4
mov edx, dword [0x412b54]
push edx
call fcn.0040554b
add esp, 4
cmp eax, ebx
je 0x40489c
mov ecx, eax
and ecx, 0x1c
cmp eax, ecx
jne 0x40489c
mov dword [0x411a64], eax
jmp 0x4043d4
cmp dword [0x412b70], 8
jg 0x4048a7
cmp dword [0x412b90], ebx
jne 0x404242
push 0x2c
call fcn.00405027
mov edx, eax
add esp, 4
cmp edx, ebx
je 0x4048b1
mov ecx, 0xb
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [0x412b90], edx
movzx edx, word [0x412bac]
mov eax, dword [0x412b54]
push edx
push eax
call fcn.0040100f
add esp, 8
cmp eax, ebx
je 0x40426b
mov ecx, dword [0x412b70]
mov edx, dword [0x412b90]
mov dword [edx + ecx*4], eax
inc dword [0x412b70]
jmp 0x4043d4
mov eax, dword [0x412b54]
push eax
call fcn.0040554b
and eax, 0xffff
imul eax, eax, 0x3e8
add esp, 4
cmp eax, ebx
mov dword [0x412ba4], eax
jne 0x4043d4
mov edx, dword [0x412b54]
push edx
push 0x40ff54
call fcn.0040105f
inc word [0x412ba8]
jmp 0x4043d4
inc word [0x412bac]
jmp 0x4043d4
mov ecx, dword [0x412b54]
inc word [0x412bb0]
mov dword [0x412b9c], ecx
jmp 0x4043d4
mov edx, dword [0x412b54]
push ebx
push edx
call fcn.00401014
add esp, 8
cmp ax, bx
mov dword [esp + 0x10], eax
jne 0x4043d4
mov eax, dword [0x412b54]
push eax
push 0x40ff3c
call fcn.0040105f
inc word [0x412bb4]
jmp 0x4043d4
movzx eax, word [0x412bac]
mov ecx, dword [0x412b54]
push eax
push ecx
call fcn.0040100f
add esp, 8
add eax, 0x1c0
mov dword [esp + 0x20], eax
jmp 0x4043d4
inc word [0x412bcc]
jmp 0x4043d4
inc word [0x412bb8]
jmp 0x4043d4
inc word [0x412bbc]
jmp 0x4043d4
mov edx, dword [0x412b54]
push edx
call fcn.0040554b
add esp, 4
cmp eax, ebx
mov dword [0x412bc0], eax
jbe 0x4048c8
push 0xc
call fcn.00405027
add esp, 4
cmp eax, ebx
push 0xc
je 0x404917
xor ecx, ecx
mov edx, eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [0x412b80], eax
call fcn.00405027
add esp, 4
cmp eax, ebx
je 0x4048d9
xor ecx, ecx
mov edx, eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov ecx, dword [0x412b80]
mov dword [0x412b84], eax
mov eax, dword [0x412bc0]
mov dword [ecx], eax
jmp 0x4043d4
inc word [0x412bc4]
mov edx, dword [esp + 0x1c4]
push str.ade:g:G:hi:lLno:p:rs:tuvw:z
push edx
push esi
call fcn.00401073
mov ebp, eax
add esp, 0xc
cmp ebp, 0xffffffff
jne 0x404190
cmp word [0x412bb4], bx
je 0x404430
push ebx
call fcn.00405799
push eax
call fcn.00405610
push 0x10004
call fcn.00405027
mov edx, eax
add esp, 0xc
cmp edx, ebx
je 0x4048f5
mov ecx, 0x4001
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [esp + 0x24], edx
cmp dword [0x412bc8], ebx
je 0x404450
push ebx
call fcn.0040a9d5
add esp, 4
mov word [0x412bb0], bx
mov dword [0x412b6c], ebx
jmp 0x4044a3
cmp word [0x412bb0], bx
je 0x4044a3
mov eax, dword [0x412b9c]
push 0x1b4
push 0x301
push eax
call fcn.0040b2a3
add esp, 0xc
cmp eax, ebx
mov dword [0x412b6c], eax
jle 0x404904
push 0x68
call fcn.00405027
mov edx, eax
add esp, 4
cmp edx, ebx
je 0x404915
mov ecx, 0x1a
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [0x412b9c], edx
mov ecx, dword [0x412b58]
mov edx, dword [esp + 0x1c4]
mov eax, dword [edx + ecx*4]
cmp eax, ebx
je 0x4044d4
movzx ecx, word [0x412bac]
push ecx
push eax
call fcn.0040100f
mov ecx, dword [0x412b58]
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4044d8
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4044ed
add eax, 0x1c0
cmp eax, ebx
je 0x4044ed
mov edi, eax
mov dword [esp + 0x18], edi
jmp 0x4044f1
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x4044fc
inc ecx
mov dword [0x412b58], ecx
cmp word [0x412ba8], bx
mov dword [0x412be8], ebx
je 0x4045b9
mov edx, dword [esp + 0x1c4]
mov ecx, dword [edx + ecx*4]
xor eax, eax
cmp ecx, ebx
je 0x404532
push ebx
push ecx
call fcn.00401014
add esp, 8
cmp ax, bx
je 0x404921
movzx ecx, word [esp + 0x10]
mov edx, dword [esp + 0x20]
push ecx
movzx eax, ax
push edx
push eax
push edi
call fcn.0040106e
add esp, 0x10
cmp eax, ebx
mov dword [0x411a4c], eax
jle 0x40493b
cmp dword [0x412bc8], ebx
je 0x404576
push eax
call fcn.00401023
mov eax, dword [0x412bc8]
add esp, 4
cmp eax, ebx
jne 0x404581
mov eax, dword [0x411a4c]
push eax
call fcn.00401032
add esp, 4
mov ebp, eax
mov edi, 1
cmp word [0x412bbc], di
jbe 0x4045aa
mov ecx, dword [0x412b78]
mov edx, dword [0x412b7c]
push ecx
push edx
push 0x411a6c
call fcn.0040107d
add esp, 0xc
cmp dword [esp + 0x1c], edi
je 0x404020
jmp 0x404988
cmp edi, ebx
je 0x404945
mov eax, dword [esp + 0x1c4]
cmp dword [eax + ecx*4], ebx
je 0x40494f
cmp dword [eax + ecx*4 + 4], ebx
je 0x4045de
mov word [0x411a68], bx
mov eax, dword [esp + 0x1c4]
mov eax, dword [eax + ecx*4]
test eax, eax
mov ebx, dword [esp + 0x10]
je 0x404822
push 0x2d
push eax
xor edi, edi
call fcn.00405890
mov esi, eax
add esp, 8
test esi, esi
je 0x404620
mov byte [esi], 0
inc esi
push edi
push esi
call fcn.00401014
add esp, 8
mov edi, eax
test di, di
je 0x404959
mov ecx, dword [0x412b58]
mov edx, dword [esp + 0x1c4]
mov eax, dword [edx + ecx*4]
push 0
push eax
call fcn.00401014
add esp, 8
mov esi, eax
test si, si
mov dword [esp + 0x28], esi
je 0x404964
cmp di, si
jbe 0x404770
cmp word [0x412bb4], 0
mov word [0x411a68], 0
je 0x404683
movzx ecx, di
mov edi, dword [esp + 0x24]
movzx edx, si
push ecx
push edx
push edi
call fcn.0040103c
push edi
call fcn.00401041
add esp, 0x10
mov edi, eax
cmp si, di
ja 0x404805
lea esp, [esp]
cmp word [esp + 0x10], 0
jne 0x4046b6
cmp word [0x412bb4], 0
je 0x4046b6
call fcn.0040561a
mov ebx, eax
cmp bx, 0x2000
jae 0x4046b6
add ebx, 0x2000
movzx eax, di
push eax
push 0
call fcn.00401014
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x20]
movzx ecx, bx
push ecx
mov edi, eax
movzx esi, di
push edx
push esi
push ebp
call fcn.00401050
add esp, 0x18
test eax, eax
mov dword [0x411a4c], eax
jle 0x404777
cmp word [0x412bc4], 0
je 0x40470d
cmp word [0x412bb8], 0
je 0x40470d
push ebp
push eax
call fcn.00401064
add esp, 8
mov dword [0x411a4c], eax
test eax, eax
jle 0x404777
mov eax, dword [0x412b98]
push eax
mov eax, dword [esp + 0x18]
push esi
lea ecx, [eax + 0x100]
push ecx
push eax
push str._s___s___d___s_
xor ebp, ebp
call fcn.0040107d
mov eax, dword [0x412bc8]
add esp, 0x14
test eax, eax
je 0x40474b
mov edx, dword [0x411a4c]
push edx
call fcn.00401023
add esp, 4
cmp word [0x412bc4], 0
jne 0x4047bc
mov eax, dword [0x412bc8]
test eax, eax
jne 0x4047bc
mov eax, dword [0x411a4c]
push eax
call fcn.00401032
add esp, 4
mov ebp, eax
jmp 0x4047bc
mov edi, esi
jmp 0x404690
cmp word [0x411a68], 0
mov ebp, 1
jne 0x40479b
cmp word [0x412bbc], bp
ja 0x40479b
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x274d
je 0x4047bc
mov ecx, dword [0x412b98]
mov eax, dword [esp + 0x14]
push ecx
push esi
lea edx, [eax + 0x100]
push edx
push eax
push 0x40ff0c
call fcn.0040107d
add esp, 0x14
mov eax, dword [0x411a4c]
push eax
call sub.WSOCK32.dll_closesocket
mov eax, dword [0x412ba4]
test eax, eax
je 0x4047d9
push eax
call fcn.004052c8
add esp, 4
cmp word [0x412bb4], 0
je 0x4047f4
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00401041
add esp, 4
mov edi, eax
jmp 0x4047fa
add edi, 0xffff
cmp word [esp + 0x28], di
jbe 0x404690
mov eax, dword [0x412b58]
mov edx, dword [esp + 0x1c4]
inc eax
mov dword [0x412b58], eax
mov eax, dword [edx + eax*4]
test eax, eax
jne 0x4045f4
mov esi, 1
cmp word [0x412bbc], si
mov dword [0x412be8], 0
jbe 0x404854
mov eax, dword [0x412b78]
mov ecx, dword [0x412b7c]
push eax
push ecx
push 0x40fef4
call fcn.0040107d
add esp, 0xc
call sub.WSOCK32.dll_WSACleanup
cmp dword [esp + 0x1c], esi
jne 0x40497e
xor ebx, ebx
jmp 0x404012
push 0x40feec
call fcn.0040105f
push 0x2004
push str.Hmalloc_
call fcn.0040105f
push 0x204
push str.Hmalloc_
call fcn.0040105f
push str.all_A_records_NIY
call fcn.0040105f
push eax
push 0x40fea0
call fcn.0040105f
push 0x40fe84
call fcn.0040105f
push 0x2c
push str.Hmalloc_
call fcn.0040105f
mov dword [0x412be8], ebx
jmp 0x401078
mov ecx, dword [0x412b54]
push ecx
push 0x40fe6c
call fcn.0040105f
push 0xc
push str.Hmalloc_
call fcn.0040105f
push str.nc__h
mov dword [0x412be8], ebx
call fcn.0040105f
push 0x10004
push str.Hmalloc_
call fcn.0040105f
mov edx, dword [0x412b9c]
push edx
push 0x40fe44
call fcn.0040105f
push 0x68
push str.Hmalloc_
call fcn.0040105f
mov eax, dword [0x412b58]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx + eax*4]
push edx
push 0x40fe34
call fcn.0040105f
push 0x40fe2c
call fcn.0040105f
push 0x40fe1c
call fcn.0040105f
push 0x40fe04
call fcn.0040105f
push esi
push 0x40fe34
call fcn.0040105f
mov eax, dword [0x412b58]
mov ecx, dword [esp + 0x1c4]
mov edx, dword [ecx + eax*4]
push edx
push 0x40fe34
call fcn.0040105f
cmp word [0x411a68], 0
je 0x40498e
push ebp
call fcn.004051d5
push 0
call fcn.004051d5
push 0x4c
push str.Hmalloc_
call fcn.0040105f
push 0x108
push str.Hmalloc_
call fcn.0040105f
push 0x2004
push str.Hmalloc_
call fcn.0040105f
push 0x2004
push str.Hmalloc_
call fcn.0040105f
push 0x14
push str.Hmalloc_
call fcn.0040105f
mov edi, edi
fiadd dword [ecx + 0x40]
add byte [ebx - 1845477311], bh
dec eax
inc eax
add bh, cl
inc ecx
inc eax
add byte [edx + 0x8004041], ch
inc edx
inc eax
add byte [ebp + 0x76004048], bh
inc edx
inc eax
add byte [ebp - 0x46ffbfbe], ch
inc edx
inc eax
add ch, al
inc edx
inc eax
add ch, bl
inc edx
inc eax
add byte [edx], cl
inc ebx
inc eax
add byte [esi], dl
inc ebx
inc eax
add byte [ebx], bh
inc ebx
inc eax
add byte [edi + 0x43], al
inc eax
add byte [ebx + 0x43], dl
inc eax
add byte [ebx + eax*2 + 0x40], bl
add ch, cl
inc ebx
inc eax
add ch, ah
dec eax
inc eax
add byte [eax], al
adc edx, dword [ebx]
adc edx, dword [ebx]
add dword [ebx], edx
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc edx, dword [ebx]
adc eax, dword [edx]
adc edx, dword [ebx]
add eax, dword [ebx + edx]
add eax, 320014086
or byte [ebx], dl
or dword [edx], ecx
or edx, dword [ebx]
or al, 13
push cs
movups xmm2, xmmword [ecx]
adc edx, dword [ebx]
adc cl, ah
int3