Function at 0x49b118
Capabilities:
Check for time delay via gettickcount
Hide graphical window
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00404a30
mov ebx, dword [0x49e4d4]
xor eax, eax
push ebp
push 0x49b448
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
push ebp
push 0x49b423
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov byte [ebp - 0x11], 0
mov byte [0x49dfa4], 0
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0xc], eax
mov eax, ebx
mov edx, 0x1c
call fcn.004072ec
lea eax, [ebp - 0x24]
push eax
mov edx, dword [0x49e380]
mov edx, dword [edx]
lea eax, [ebp - 0x28]
mov ecx, 0x49b464
call fcn.0040488c
mov edx, dword [ebp - 0x28]
mov eax, dword [0x49e13c]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 4]
call fcn.00495a7c
push esi
lea esi, [ebp - 0x24]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [ebp - 0xc]
add eax, 0x927c0
cmp dword [ebx + 8], 0
jne 0x49b1c5
call fcn.0040404c
jmp 0x49b42a
mov dword [ebp - 0x10], eax
jmp 0x49b22b
push 0x49b478
mov edx, dword [ebx + 8]
mov eax, dword [0x49e13c]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov ecx, 0x49b48c
call fcn.00495980
mov edi, eax
mov dword [ebx + 0x10], edi
test edi, edi
jne 0x49b231
call sub.kernel32.dll_GetTickCount
cmp eax, dword [ebp - 0x10]
jbe 0x49b203
call fcn.0040404c
jmp 0x49b42a
mov eax, esi
call fcn.0049b504
test al, al
je 0x49b218
call fcn.0040404c
jmp 0x49b42a
push 0x64
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x49e310]
mov eax, dword [eax]
call fcn.00477178
cmp dword [ebx + 0x10], 0
je 0x49b1ca
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 1
mov eax, dword [ebx + 0x10]
push eax
call sub.XignCode3.xem_HookKeyOn
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 0x49b498
call sub.kernel32.dll_OutputDebugStringA
jmp 0x49b2bf
push 0
mov edx, dword [ebx + 8]
mov eax, dword [0x49e13c]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov ecx, 0x49b4c8
call fcn.00495980
mov edi, eax
mov dword [ebx + 0x14], edi
test edi, edi
jne 0x49b2c5
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0xc]
cmp eax, 0x927c0
jbe 0x49b297
call fcn.0040404c
jmp 0x49b42a
mov eax, esi
call fcn.0049b504
test al, al
je 0x49b2ac
call fcn.0040404c
jmp 0x49b42a
push 0x64
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x49e310]
mov eax, dword [eax]
call fcn.00477178
cmp dword [ebx + 0x14], 0
je 0x49b25c
push 0x49b4dc
call sub.kernel32.dll_OutputDebugStringA
mov edx, dword [ebx + 0x10]
imul eax, dword [0x49dfa8], 0x3d
mov dword [eax + 0x49fd9d], edx
mov edx, dword [ebx + 0x14]
mov dword [eax + 0x49fda1], edx
mov esi, ebx
lea edi, [eax + 0x49fd8d]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [0x49dfb4]
call fcn.0049a200
mov esi, eax
imul eax, dword [0x49dfa8], 0x3d
mov dword [eax + 0x49fd89], esi
inc esi
jne 0x49b31a
call fcn.0040404c
jmp 0x49b42a
cmp byte [0x49df9c], 0
je 0x49b333
mov edx, dword [0x49dfa8]
mov eax, dword [0x49dfb4]
call fcn.0049a0f8
imul eax, dword [0x49dfa8], 0x3d
mov edx, dword [eax + 0x49fd89]
lea edx, [edx + edx*4]
mov byte [edx + 0x4a0044], 1
imul edx, dword [0x49dfa8], 0x3d
mov edx, dword [edx + 0x49fd89]
mov edx, dword [edx*4 + 0x4a0080]
mov edx, dword [edx + 0x1c]
push edx
imul edx, dword [0x49dfa8], 0x3d
mov edx, dword [edx + 0x49fd89]
lea edx, [edx + edx*4]
mov edx, dword [edx + 0x4a0045]
push edx
push 0x464
mov eax, dword [eax + 0x49fda1]
push eax
call sub.user32.dll_PostMessageA
imul edx, dword [0x49dfa8], 0x3d
mov edx, dword [edx + 0x49fd89]
lea ecx, [edx + edx*4]
mov ecx, dword [ecx + 0x4a0045]
push ecx
mov eax, dword [edx*4 + 0x4a0080]
mov edx, eax
mov eax, dword [eax + 0x1c]
mov ecx, dword [0x49df98]
xchg edx, eax
call fcn.00493bf4
imul eax, dword [0x49dfa8], 0x3d
mov eax, dword [eax + 0x49fd89]
mov eax, dword [eax*4 + 0x4a0080]
call fcn.00493a74
push 5
mov eax, dword [ebx + 0x10]
push eax
call sub.user32.dll_ShowWindow
push 5
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_ShowWindow
inc dword [0x49dfa8]
mov byte [ebp - 0x11], 1
mov eax, ebx
mov edx, 0x1c
call fcn.004072ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49b42a
mov byte [0x49dfa0], 0
cmp byte [ebp - 0x11], 0
jne 0x49b422
mov eax, dword [0x49dfb4]
call fcn.0049a4bc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49b44f
lea eax, [ebp - 0x28]
call fcn.00404580
lea eax, [ebp - 4]
call fcn.00404580
ret