Function at 0x423170
Capabilities:
Check for time delay via gettickcount
Get common file path
Hide graphical window
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x563226
mov eax, dword fs:[0]
push eax
sub esp, 0x644
mov eax, dword [0x5a7074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 0xc]
mov eax, esi
shr eax, 0x10
cmp eax, 0x400
jne 0x4231bf
lea ecx, [edi + 0xcc]
call fcn.0041ee40
jmp case.0x4231ce.1291
lea eax, [esi - 0x500]
cmp eax, 0xd
ja case.0x4231ce.1291
jmp dword [eax*4 + 0x423524]
call fcn.004237f0
jmp case.0x4231ce.1289
call fcn.00424740
mov eax, dword [edi + 4]
mov esi, dword [sym.imp.USER32.dll_GetDC]
push eax
mov dword [ebp - 0x644], eax
call esi
mov dword [ebp - 0x648], eax
push ecx
mov ecx, esp
mov dword [ebp - 4], 0
mov dword [ecx], eax
mov ecx, edi
call fcn.00420910
mov ecx, edi
call fcn.004237f0
mov eax, dword [0x5d0344]
cmp dword [eax - 0xc], 0
je 0x423275
push dword [edi + 4]
call esi
mov esi, dword [0x5d0344]
mov ebx, eax
cmp dword [esi - 4], 1
jle 0x423247
push dword [esi - 0xc]
mov ecx, 0x5d0344
call fcn.0040db10
mov esi, dword [0x5d0344]
push ebx
push ecx
mov ecx, edi
call fcn.00423710
add esp, 4
mov edx, eax
mov ecx, esi
call fcn.00418d70
add esp, 4
mov ecx, 0x5d0344
push 0xffffffffffffffff
call fcn.00429080
push ebx
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0
push str.SWIFDOO_PDF_FRAME
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x423296
push 0
push 1
push 0x7936
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
lea ecx, [ebp - 0x648]
call fcn.00419e70
jmp case.0x4231ce.1291
call fcn.00424740
mov eax, dword [edi + 4]
push eax
mov dword [ebp - 0x644], eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x648], eax
push ecx
mov ecx, esp
mov dword [ebp - 4], 1
mov dword [ecx], eax
mov ecx, edi
call fcn.00420910
mov ecx, edi
call fcn.00422e50
lea ecx, [ebp - 0x648]
call fcn.00419e70
jmp case.0x4231ce.1291
call fcn.00424740
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x42331d
cmp dword [eax + 0x78], 0xffffffff
je 0x42331d
push ecx
push esi
mov ecx, edi
call fcn.00423b80
jmp case.0x4231ce.1291
mov eax, dword [edi + 0xc4]
test eax, eax
je 0x423345
push dword [eax + 4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x423345
mov eax, dword [edi + 0xc4]
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov byte [edi + 0x9c], 0
jmp case.0x4231ce.1291
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x423387
cmp dword [eax + 0x78], 0x505
jne 0x423387
push dword [edi + 0xd0]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x423387
push 0
push dword [edi + 0xd0]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp case.0x4231ce.1291
mov eax, dword [edi + 0xb4]
lea esi, [edi + 0xb0]
sub eax, dword [esi]
sar eax, 2
test eax, eax
je case.0x4231ce.1291
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 2
lea ebx, [eax*4 - 4]
mov eax, dword [esi]
mov ecx, dword [ebx + eax]
test ecx, ecx
je 0x4233be
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi]
mov ecx, esi
add eax, ebx
push eax
lea eax, [ebp - 0x650]
push eax
call fcn.00425590
push 1
push 0
push dword [edi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4231ce.1291
push 0x20a
lea eax, [ebp - 0x640]
push 0
push eax
call fcn.005111c0
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
add esp, 0xc
call esi
push 0x20a
lea eax, [ebp - 0x430]
push 0
push eax
call fcn.005111c0
add esp, 0xc
lea eax, [ebp - 0x430]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x20a
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.005111c0
add esp, 0xc
call esi
push eax
lea eax, [ebp - 0x430]
push eax
push str._s_d.png
lea eax, [ebp - 0x220]
push 0x104
push eax
call fcn.00429140
add esp, 0x14
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push esi
push ecx
mov ecx, edi
call fcn.00423710
add esp, 4
lea ecx, [ebp - 0x220]
mov edx, eax
call fcn.00418d70
add esp, 4
push esi
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x104
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x640]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov ecx, edi
call fcn.004237f0
xorps xmm0, xmm0
mov dword [ebp - 0x64c], 0
movq qword [ebp - 0x648], xmm0
lea eax, [ebp - 0x640]
mov dword [ebp - 0x644], eax
lea eax, [ebp - 0x64c]
push eax
push 0
push 0x4a
push dword [0x5bf3a8]
mov dword [ebp - 0x648], 0x20a
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0050a055
mov esp, ebp
pop ebp
ret 0x10