Function at 0x40178a
Capabilities:
Check for time delay via gettickcount
Encode data using xor
Get hostname

Disassembly:
jmp 0x407b90
push 0xffffffffffffffff
push 0x41e94c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbb8
push ebp
mov ebp, ecx
push esi
lea ecx, [esp + 8]
call sub.MFC42u.DLL_CString::CString_3
lea ecx, [esp + 0xc]
mov dword [esp + 0xbc8], 0
call sub.MFC42u.DLL_CString::CString_3
push 0x3fd
mov ecx, ebp
mov byte [esp + 0xbcc], 1
call sub.MFC42u.DLL_CWnd::GetDlgItem
push 0
mov esi, eax
call dword [sym.imp.VMProtectSDK32.dll_VMProtectBeginVirtualization]
mov eax, dword [ebp + 0xed18]
mov ecx, dword [ebp + 0xed24]
xor eax, 0x87321c65
or ah, 4
cmp eax, ecx
je 0x407c43
lea ecx, [esp + 0xc]
mov byte [esp + 0xbc8], 0
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 8]
mov dword [esp + 0xbc8], 0xffffffff
call sub.MFC42u.DLL_CString::CString
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
add esp, 0xbc4
ret
mov ecx, dword [ebp + 0xed50]
test ecx, ecx
je 0x4081d6
call fcn.0040104b
test eax, eax
je 0x4081d6
mov eax, dword [ebp + 0xed50]
mov ecx, dword [eax + 0x44c]
mov edx, dword [eax + 0x458]
xor ecx, 0x87321c65
or ch, 4
cmp ecx, edx
je 0x407cbe
lea ecx, [esp + 0xc]
mov byte [esp + 0xbc8], 0
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 8]
mov dword [esp + 0xbc8], 0xffffffff
call sub.MFC42u.DLL_CString::CString
pop esi
mov eax, 5
pop ebp
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
add esp, 0xbc4
ret
push ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [eax + 0x2d8], 5
call edi
mov ecx, dword [ebp + 0xed50]
push eax
call fcn.00401140
mov ecx, dword [ebp + 0xed50]
mov eax, dword [0x42c148]
push 0
push 5
mov edx, dword [ecx + 0x214]
mov ecx, ebp
mov dword [eax], edx
mov eax, dword [ebp + 0xed54]
push eax
call fcn.00401609
mov ecx, 0x42b508
call fcn.00401843
push 0
mov ecx, esi
call sub.MFC42u.DLL_CWnd::ShowWindow
mov ecx, 0x42b508
call fcn.004016c7
mov ecx, ebp
call fcn.004014a6
push 0
mov ecx, esi
call sub.MFC42u.DLL_CWnd::ShowWindow
mov ecx, 0x42b508
call fcn.00401569
lea ecx, [esp + 0x1c]
call sub.MFC42u.DLL_CString::CString_3
lea ecx, [esp + 0x28]
mov byte [esp + 0xbd0], 2
call sub.MFC42u.DLL_CFile::CFile
lea ecx, [esp + 0x5b8]
push 0x104
push ecx
mov byte [esp + 0xbd8], 3
call fcn.0041a380
add esp, 8
call edi
push eax
call dword [sym.imp.MSVCRT.dll_srand]
mov ebx, dword [sym.imp.MSVCRT.dll_rand]
add esp, 4
call ebx
mov esi, eax
call edi
add esi, eax
xor esi, 0x83713292
mov dword [esp + 0x18], esi
xor esi, esi
call ebx
mov byte [esp + esi + 0x13c], al
inc esi
cmp esi, 0x478
jb 0x407d97
mov eax, dword [ebp + 0xed50]
mov ecx, 0x10
lea edi, [esp + 0x38]
lea edx, [esp + 0x38]
mov ebx, dword [eax + 0x438]
lea esi, [eax + 0x2e4]
xor ebx, 0x73ca27b5
rep movsd dword es:[edi], dword [esi]
push ebx
push 0x104
push edx
mov ecx, ebp
call fcn.004016c2
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x18c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x104
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0xed50]
mov ecx, 0x10
add esi, 0x324
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x40]
push ecx
mov ecx, ebp
call fcn.004016c2
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x290]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x104
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0xed50]
mov ecx, 0x10
add esi, 0x364
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x40]
push ecx
mov ecx, ebp
call fcn.004016c2
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x394]
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]
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov ecx, dword [0x42a854]
mov eax, dword [ebp + 0xf0b0]
lea edx, [esp + 0x38]
push ecx
push edx
push eax
call fcn.0041a220
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x498]
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [ebp + 0xed50]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
lea ebx, [esp + 0x15c]
rep movsb byte es:[edi], byte [esi]
lea edi, [edx + 0x3a8]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x3a4]
xor ecx, 0x1967223
mov dword [esp + 0x59c], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [esp + 0x59c]
mov edx, dword [0x42b618]
add eax, 0x1b7740
mov ecx, 6
xor eax, ebx
mov esi, 0x42b61c
xor eax, 0x837213
lea edi, [esp + 0x144]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x140], edx
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x38]
push eax
push ecx
mov dword [esp + 0x2c], 0x104
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
test eax, eax
je 0x407fd8
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, 0x587
test ecx, ecx
jle 0x407fcb
xor eax, eax
lea edi, [esp + 0x38]
mov al, byte [esp + edx + 0x38]
or ecx, 0xffffffff
add esi, eax
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jl 0x407fb0
xor esi, 0x23123124
mov dword [esp + 0x180], esi
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x38]
lea edx, [esp + 0x38]
rep stosd dword es:[edi], eax
mov ecx, dword [0x42a854]
lea eax, [esp + 0x5b8]
push ecx
push edx
push eax
call fcn.0041a220
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
xor edx, edx
mov esi, 0x387
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x408035
xor ecx, ecx
lea edi, [esp + 0x38]
mov cl, byte [esp + edx + 0x38]
xor eax, eax
add esi, ecx
or ecx, 0xffffffff
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jl 0x40801a
xor esi, 0x52352344
lea eax, [esp + 0x13c]
mov dword [esp + 0x188], esi
mov ecx, 0x11f
mov edx, dword [esp + 0x18]
mov edi, dword [eax]
xor edi, edx
mov dword [eax], edi
add eax, 4
dec ecx
jne 0x40804e
lea eax, [esp + 0x20]
push 0x2b
push eax
mov ecx, 0x42a830
call fcn.004016e5
mov ecx, dword [eax]
lea edx, [esp + 0x5b8]
push ecx
push edx
lea eax, [esp + 0x9c8]
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [esp + 0x20]
call sub.MFC42u.DLL_CString::CString
push 0
lea ecx, [esp + 0x9c4]
push 0x1001
push ecx
lea ecx, [esp + 0x34]
call sub.MFC42u.DLL_CFile::Open
pop edi
pop ebx
test eax, eax
jne 0x4080ca
lea ecx, [esp + 0x20]
mov byte [esp + 0xbc8], 2
call fcn.00415e50
jmp 0x408146
lea edx, [esp + 0x134]
push 0x47c
push edx
lea ecx, [esp + 0x28]
call sub.MFC42u.DLL_CFile::Write
lea ecx, [esp + 0x20]
call sub.MFC42u.DLL_CFile::Close
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x20]
xor esi, 0x32423423
mov byte [esp + 0xbc8], 2
call fcn.00415e50
test esi, esi
je 0x408146
push esi
lea eax, [esp + 0x7bc]
push str._r_x
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov ecx, dword [ebp + 0xed50]
add esp, 0xc
add ecx, 0x3d0
lea edx, [esp + 0x7b8]
push 0
push ecx
push edx
push 0x27
mov ecx, 0x42a328
call fcn.004017c1
test eax, eax
jne 0x408181
mov eax, dword [ebp + 0x60]
test eax, eax
jne 0x40815f
mov eax, dword [ebp + 0x20]
push 0x65
push eax
push 0x425
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0xed54]
push 0
push 6
push eax
mov ecx, ebp
call fcn.00401609
mov ecx, dword [ebp + 0xed50]
mov dword [ecx + 0x2d8], 6
lea ecx, [esp + 0x14]
mov byte [esp + 0xbc8], 1
call sub.MFC42u.DLL_CString::CString
call dword [sym.imp.VMProtectSDK32.dll_VMProtectEnd]
lea ecx, [esp + 0xc]
mov byte [esp + 0xbc8], 0
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 8]
mov dword [esp + 0xbc8], 0xffffffff
call sub.MFC42u.DLL_CString::CString
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0xbb8]
mov dword fs:[0], ecx
add esp, 0xbc4
ret
lea ecx, [esp + 0xc]
mov byte [esp + 0xbc8], 0
call sub.MFC42u.DLL_CString::CString
lea ecx, [esp + 8]
mov dword [esp + 0xbc8], 0xffffffff
call sub.MFC42u.DLL_CString::CString
mov ecx, dword [esp + 0xbc0]
pop esi
mov eax, 4
pop ebp
mov dword fs:[0], ecx
add esp, 0xbc4
ret