Function at 0x40c670
Capabilities:
Contain obfuscated stackstrings
Set current directory
Shutdown system

Disassembly:
push 0xffffffffffffffff
push 0x450e04
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf0
push ebx
push ebp
mov ebx, ecx
cmp byte [ebx + 0x171], 1
push esi
push edi
mov dword [esp + 0x14], ebx
jne 0x40cc69
mov ecx, dword [ebx + 0x1f0]
call fcn.004167c0
sub esp, 0xc
mov edi, eax
mov eax, esp
mov dword [esp + 0x1c], esp
push eax
mov ecx, edi
call fcn.00424cf0
call fcn.0040d4e0
add esp, 0xc
cmp eax, 8
jne 0x40c747
mov ecx, dword [ebx + 0x1f0]
push 0x3e7
call fcn.00416a60
test al, al
je 0x40cc54
call fcn.00409dc0
lea ecx, [esp + 0x14]
push ecx
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
lea edx, [esp + 0x4c]
push edx
push str.SeShutdownPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
mov ecx, dword [esp + 0x14]
push 0
push 0
push 0
lea eax, [esp + 0x54]
push eax
push 0
push ecx
mov dword [esp + 0x60], 1
mov dword [esp + 0x6c], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
push 0
push 6
call dword [sym.imp.USER32.dll_ExitWindowsEx]
jmp 0x40cc54
mov ecx, ebx
call fcn.0040ae00
lea ecx, [esp + 0x30]
call fcn.004217f0
xor ebp, ebp
lea ecx, [esp + 0x18]
mov dword [esp + 0x108], ebp
call fcn.004217f0
lea ecx, [esp + 0x24]
mov byte [esp + 0x108], 1
call fcn.004217f0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x108], 2
call fcn.004217f0
mov ecx, edi
mov byte [esp + 0x108], 3
call fcn.00424f50
test eax, eax
jle 0x40cc0d
push ebp
mov ecx, edi
call fcn.00424f30
mov ecx, eax
call fcn.00423100
test eax, eax
jne 0x40cbfb
lea edx, [esp + 0x88]
push edx
push ebp
mov ecx, edi
call fcn.00424f30
mov ecx, eax
call fcn.00423110
mov eax, dword [esp + 0x8c]
push eax
call fcn.00433c75
add esp, 4
lea ecx, [esp + 0x88]
mov esi, eax
call fcn.004214a0
mov ecx, dword [ebx + 0x1f0]
push esi
call fcn.00416a60
test al, al
je 0x40cbfb
push ebp
mov ecx, edi
xor esi, esi
call fcn.00424f30
mov ecx, eax
call fcn.00423180
test eax, eax
jle 0x40cbfb
jmp 0x40c820
lea ecx, [esp + 0x94]
push ecx
push esi
push ebp
mov ecx, edi
call fcn.00424f30
mov ecx, eax
call fcn.00423160
mov ecx, eax
call fcn.004284a0
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x10c], 4
call fcn.004216a0
lea ecx, [esp + 0x94]
mov byte [esp + 0x108], 3
call fcn.004214a0
push esi
push ebp
mov ecx, edi
call fcn.00424f30
mov ecx, eax
call fcn.00423160
mov ecx, eax
call fcn.00428490
sub eax, 9
je 0x40cbd3
sub eax, 1
je 0x40cbc8
sub eax, 1
jne 0x40cbe1
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x40]
call fcn.004216a0
sub esp, 0xc
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.00421630
lea ecx, [esp + 0xe8]
push ecx
call fcn.00404390
mov eax, dword [eax + 4]
add esp, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 0xdc]
call fcn.004214a0
push 0
sub esp, 0xc
mov ecx, esp
mov dword [esp + 0x20], esp
push str.HTTP:__
call fcn.004216d0
lea edx, [esp + 0x104]
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x11c], 5
call fcn.004218e0
mov ecx, eax
mov byte [esp + 0x118], 7
call fcn.00421590
cmp eax, 1
lea ecx, [esp + 0xf4]
sete bl
mov byte [esp + 0x108], 3
call fcn.004214a0
test bl, bl
je 0x40c94c
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
call fcn.004216a0
jmp 0x40cb2c
push 0x4556bf
lea ecx, [esp + 0x40]
call fcn.00421530
test al, al
je 0x40ca84
push 0x455848
lea ecx, [esp + 0x68]
call fcn.004216d0
push 0x455828
lea ecx, [esp + 0x74]
mov byte [esp + 0x10c], 8
call fcn.004216d0
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0x114], 9
call fcn.0040a870
lea ecx, [esp + 0x24]
push ecx
push eax
lea edx, [esp + 0xf0]
push edx
mov byte [esp + 0x114], 0xa
call fcn.0040a870
lea ecx, [esp + 0x64]
push ecx
push eax
lea edx, [esp + 0xc0]
push edx
mov byte [esp + 0x114], 0xb
call fcn.0040a870
sub esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
lea edx, [esp + 0x48]
push edx
push eax
push ecx
mov byte [esp + 0x120], 0xc
call fcn.0040a870
lea eax, [esp + 0xdc]
push eax
call fcn.00404390
add esp, 0x10
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x10c], 0xd
call fcn.004216a0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x108], 0xc
call fcn.004214a0
lea ecx, [esp + 0xb8]
mov byte [esp + 0x108], 0xb
call fcn.004214a0
lea ecx, [esp + 0xe8]
mov byte [esp + 0x108], 0xa
call fcn.004214a0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x108], 9
call fcn.004214a0
lea ecx, [esp + 0x70]
mov byte [esp + 0x108], 8
call fcn.004214a0
lea ecx, [esp + 0x64]
jmp 0x40cb1f
push 0x455828
lea ecx, [esp + 0x80]
call fcn.004216d0
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0xcc]
push eax
mov byte [esp + 0x114], 0xe
call fcn.0040a870
sub esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
lea edx, [esp + 0x30]
push edx
push eax
push ecx
mov byte [esp + 0x120], 0xf
call fcn.0040a870
lea eax, [esp + 0xb8]
push eax
call fcn.00404390
add esp, 0x10
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x10c], 0x10
call fcn.004216a0
lea ecx, [esp + 0xac]
mov byte [esp + 0x108], 0xf
call fcn.004214a0
lea ecx, [esp + 0xc4]
mov byte [esp + 0x108], 0xe
call fcn.004214a0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x108], 3
call fcn.004214a0
push 0x455bf4
lea ecx, [esp + 0x4c]
push ecx
sub esp, 0xc
lea edx, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.00421630
lea eax, [esp + 0x6c]
push eax
call fcn.0040a9d0
add esp, 0x10
mov ecx, eax
mov byte [esp + 0x110], 0x11
call fcn.004218e0
mov ecx, eax
mov byte [esp + 0x10c], 0x12
call fcn.004214d0
lea ecx, [esp + 0x48]
mov bl, al
mov byte [esp + 0x108], 0x11
call fcn.004214a0
lea ecx, [esp + 0x58]
mov byte [esp + 0x108], 3
call fcn.004214a0
test bl, bl
push 5
je 0x40cbaf
mov ecx, dword [esp + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_WinExec]
mov ebx, dword [esp + 0x14]
jmp 0x40cbe1
mov edx, dword [esp + 0x20]
push 0
push 0
push edx
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov ebx, dword [esp + 0x14]
jmp 0x40cbe1
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x1c]
jmp 0x40cbdc
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x28]
call fcn.004216a0
push ebp
mov ecx, edi
add esi, 1
call fcn.00424f30
mov ecx, eax
call fcn.00423180
cmp esi, eax
jl 0x40c820
mov ecx, edi
add ebp, 1
call fcn.00424f50
cmp ebp, eax
jl 0x40c7a2
lea ecx, [esp + 0x3c]
mov byte [esp + 0x108], 2
call fcn.004214a0
lea ecx, [esp + 0x24]
mov byte [esp + 0x108], 1
call fcn.004214a0
lea ecx, [esp + 0x18]
mov byte [esp + 0x108], 0
call fcn.004214a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x108], 0xffffffff
call fcn.004214a0
mov edx, dword [ebx + 0x1c]
push 0
push 0x64
push 8
push edx
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x40cd82
mov ecx, 0x476618
call fcn.00419380
mov esi, eax
test esi, esi
jne 0x40cca2
cmp dword [ebx + 0x1f4], 7
jne 0x40cd82
push eax
mov ecx, ebx
call fcn.00442ee8
mov eax, dword [ebx + 0x1c]
push esi
push 0x64
push 8
push eax
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x40cd82
cmp byte [0x46b147], 0
je 0x40cd7a
mov ecx, dword [ebx + 0x1ec]
mov byte [ebx + 0x171], 1
call fcn.004186c0
sub esp, 0xc
mov ecx, esp
mov dword [esp + 0x1c], esp
push ecx
mov ecx, dword [ebx + 0x1f0]
call fcn.00416790
mov ecx, dword [ebx + 0x1f0]
sub esp, 0xc
mov edx, esp
mov dword [esp + 0x2c], esp
push edx
mov dword [esp + 0x124], 0x13
call fcn.00416760
or edi, 0xffffffff
mov ecx, ebx
mov dword [esp + 0x120], edi
call fcn.0040bb80
mov ecx, dword [ebx + 0x1f0]
push esi
call fcn.00416d20
mov ecx, dword [ebx + 0x1f0]
call fcn.004167d0
push 0
lea ecx, [ebx + 0x70]
mov dword [ebx + 0x1f4], 9
call fcn.00442f24
lea esi, [ebx + 0xc0]
push 1
mov ecx, esi
call fcn.00442f24
push 0x10
lea eax, [esp + 0x5c]
push eax
mov ecx, 0x476708
call fcn.0041b4f0
mov eax, dword [eax + 4]
push eax
mov ecx, esi
mov dword [esp + 0x10c], 0x14
call fcn.00442e6e
lea ecx, [esp + 0x58]
mov dword [esp + 0x108], edi
call fcn.004214a0
jmp 0x40cd82
push esi
mov ecx, ebx
call fcn.0040bc00
mov ecx, dword [esp + 0x100]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xfc
ret