Function at 0x427f87
Capabilities:
Check for time delay via gettickcount
Get keyboard layout

Disassembly:
push ebp
mov eax, 0x408c
lea ebp, [esp - 0x78]
call fcn.00458250
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
cmp byte [edi], 0x3e
mov dword [ebp + 0x68], edi
jne 0x428041
push str.UseErrorLevel
push dword [0x46a4b0]
call fcn.00439733
test eax, eax
pop ecx
pop ecx
mov ecx, 0x467ce0
je 0x428008
xor eax, eax
mov al, 3
cmp al, byte [edi + 1]
sbb eax, eax
and eax, dword [0x46a504]
xor esi, esi
push eax
inc esi
push esi
push esi
lea eax, [ebp + 0x6c]
push eax
push dword [0x46a4b0]
push ebx
push dword [0x46a4ac]
push ebx
push dword [0x46a4a8]
call fcn.0040efde
test eax, eax
jne 0x428044
push esi
push ebx
push 0xffffffffffffffff
push str.ERROR
jmp 0x4284b7
xor eax, eax
mov al, 3
cmp al, byte [edi + 1]
sbb eax, eax
and eax, dword [0x46a504]
push eax
push 1
push ebx
lea eax, [ebp + 0x6c]
push eax
push dword [0x46a4b0]
push 1
push dword [0x46a4ac]
push ebx
push dword [0x46a4a8]
call fcn.0040efde
test eax, eax
je 0x4284c2
xor esi, esi
inc esi
mov al, byte [edi]
cmp al, 0x5c
jne 0x428104
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push esi
push ebx
push ebx
push dword [0x46a4a8]
call fcn.00415b93
add esp, 0x14
test al, al
mov byte [ebp + 0x5c], al
jne 0x428099
push ebx
lea eax, [ebp + 0x50]
push eax
push dword [0x46a4a8]
call fcn.00422c60
add esp, 0xc
cmp eax, ebx
mov dword [ebp + 0x54], eax
je 0x428092
cmp eax, 0xc
jl 0x428092
cmp eax, 0x2b
jle 0x428099
push esi
push ebx
jmp 0x4284b0
mov dword [ebp + 0x60], esi
mov esi, dword [0x46a4ac]
mov byte [ebp + 0x76], 0
mov byte [ebp + 0x77], 1
mov dword [ebp + 0x70], ebx
jmp 0x4280f0
movsx eax, al
push eax
call fcn.00442990
cmp eax, 0x44
pop ecx
je 0x4280eb
cmp eax, 0x4c
je 0x4280e6
cmp eax, 0x54
jne 0x4280ef
lea eax, [esi + 1]
push eax
mov byte [ebp + 0x77], 0
call fcn.00401225
fmul qword [0x45ce78]
pop ecx
call fcn.0045871c
mov dword [ebp + 0x70], eax
jmp 0x4280ef
mov dword [ebp + 0x60], ebx
jmp 0x4280ef
mov byte [ebp + 0x76], 1
inc esi
mov al, byte [esi]
test al, al
jne 0x4280af
lea eax, [ebp - 0x4014]
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], eax
jmp 0x42815a
cmp al, 0x3e
mov ecx, dword [0x46a4a8]
mov esi, dword [0x46a4b0]
je 0x42811d
cmp al, 0x5b
je 0x428121
cmp byte [esi], 0
jne 0x428126
cmp al, 0x5b
jne 0x428153
cmp byte [ecx], 0
je 0x428153
cmp al, 0x5b
mov byte [ebp + 0x77], 0
je 0x428130
mov ecx, esi
push ecx
call fcn.00401225
fmul qword [0x45ce78]
pop ecx
call fcn.0045871c
cmp eax, 1
mov dword [ebp + 0x70], eax
jge 0x42815a
mov dword [ebp + 0x70], 0x1f4
jmp 0x42815a
mov byte [ebp + 0x77], 1
mov dword [ebp + 0x70], ebx
cmp byte [edi], 0x3e
je 0x428174
mov ecx, dword [0x467b78]
push 1
push ebx
push 0xffffffffffffffff
push 0x45a734
call fcn.0040184e
cmp byte [edi], 0x5b
jne 0x42818b
push 1
mov ecx, edi
call fcn.0040903d
cmp eax, 1
mov byte [ebp + 0x75], 1
je 0x42818f
mov byte [ebp + 0x75], 0
mov ecx, dword [ebp + 0x68]
xor edi, edi
cmp byte [ecx + 1], 0
mov eax, 0x4001
lea esi, [ebp - 0x4014]
mov ebx, 0x45a5d8
jbe 0x4281e4
test eax, eax
jne 0x4281b4
mov dword [ebp + edi*4], ebx
jmp 0x4281d8
push eax
push dword [edi*4 + 0x46a4a8]
mov dword [ebp + edi*4], esi
push esi
call fcn.00439851
push esi
call fcn.00457cb0
lea esi, [esi + eax + 1]
lea eax, [ebp - 0x13]
add esp, 0x10
sub eax, esi
mov ecx, dword [ebp + 0x68]
movzx ecx, byte [ecx + 1]
inc edi
cmp edi, ecx
jl 0x4281aa
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [ebp + 0x58], eax
mov esi, dword [0x465108]
mov ecx, dword [ebp + 0x68]
movzx eax, byte [ecx]
sub eax, 0x3e
je 0x4283d5
sub eax, 0x1d
je 0x4283a7
dec eax
je 0x42835e
sub eax, 0x14
je 0x42831d
dec eax
je 0x4282dc
dec eax
je 0x42829d
dec eax
jne 0x4283fb
mov al, byte [ecx + 1]
cmp al, 4
mov edi, dword [ebp + 0x10]
ja 0x428238
mov edi, ebx
cmp al, 3
mov edx, dword [ebp + 0xc]
ja 0x428241
mov edx, ebx
cmp al, 1
mov ecx, dword [ebp + 4]
ja 0x42824a
mov ecx, ebx
test al, al
mov eax, dword [ebp]
ja 0x428253
mov eax, ebx
push 1
push edi
push edx
push ecx
push eax
push esi
call fcn.0043c807
add esp, 0x18
test eax, eax
jne 0x4283fb
mov eax, dword [0x465108]
mov eax, dword [eax + 0x54]
cmp eax, 0xffffffff
jle 0x428483
cmp eax, 0x19
jge 0x428479
cmp byte [0x468399], 0
je 0x428479
push eax
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x428483
mov al, byte [ecx + 1]
cmp al, 4
mov edi, dword [ebp + 0x10]
ja 0x4282a9
mov edi, ebx
cmp al, 3
mov edx, dword [ebp + 0xc]
ja 0x4282b2
mov edx, ebx
cmp al, 1
mov ecx, dword [ebp + 4]
ja 0x4282bb
mov ecx, ebx
test al, al
mov eax, dword [ebp]
ja 0x4282c4
mov eax, ebx
push 1
push edi
push edx
push ecx
push eax
push esi
call fcn.0043c807
add esp, 0x18
test eax, eax
jne 0x42826a
jmp 0x4283fb
mov al, byte [ecx + 1]
cmp al, 4
mov edi, dword [ebp + 0x10]
ja 0x4282e8
mov edi, ebx
cmp al, 3
mov edx, dword [ebp + 0xc]
ja 0x4282f1
mov edx, ebx
cmp al, 1
mov ecx, dword [ebp + 4]
ja 0x4282fa
mov ecx, ebx
test al, al
mov eax, dword [ebp]
ja 0x428303
mov eax, ebx
push 0
push 0
push 0
push 0
push edi
push edx
push ecx
push eax
push esi
call fcn.0043caaf
add esp, 0x24
jmp 0x428262
mov al, byte [ecx + 1]
cmp al, 4
mov edi, dword [ebp + 0x10]
ja 0x428329
mov edi, ebx
cmp al, 3
mov edx, dword [ebp + 0xc]
ja 0x428332
mov edx, ebx
cmp al, 1
mov ecx, dword [ebp + 4]
ja 0x42833b
mov ecx, ebx
test al, al
mov eax, dword [ebp]
ja 0x428344
mov eax, ebx
push 0
push 0
push 1
push 0
push edi
push edx
push ecx
push eax
push esi
call fcn.0043caaf
add esp, 0x24
jmp 0x4282d3
cmp byte [ebp + 0x5c], 0
je 0x42837c
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call fcn.0041f2fa
pop ecx
pop ecx
cmp al, byte [ebp + 0x76]
je 0x428483
jmp 0x4283fb
push 0
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x50]
push dword [ebp + 0x54]
call fcn.0041ef28
fld qword [0x45cd78]
fucompp
add esp, 0x10
fnstsw ax
test ah, 0x44
jnp 0x4283a3
mov al, 1
jmp 0x428371
xor al, al
jmp 0x428371
cmp byte [ebp + 0x75], 0
je 0x4283bd
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
jne 0x428483
jmp 0x4283fb
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x428483
push 0xf
call esi
jmp 0x4283b3
cmp dword [ebp + 0x6c], 0
je 0x4283ea
lea eax, [ebp + 0x64]
push eax
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_GetExitCodeProcess]
jmp 0x4283ee
and dword [ebp + 0x64], 0
cmp dword [ebp + 0x64], 0x103
jne 0x428488
cmp byte [ebp + 0x77], 0
jne 0x42841a
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, dword [ebp + 0x58]
mov edx, dword [ebp + 0x70]
add ecx, edx
sub ecx, eax
cmp ecx, 5
jle 0x4284ac
push 1
push 0x8000012f
call fcn.0040de6e
test al, al
pop ecx
pop ecx
je 0x4281ed
mov esi, dword [0x465108]
cmp byte [esi + 0xcf], 0
je 0x4281f3
mov eax, dword [0x46ab90]
mov ecx, dword [ebp + 0x68]
mov dword [eax*4 + 0x46a550], ecx
mov ecx, dword [ebp + 0x58]
mov dword [eax*4 + 0x469e68], ecx
inc eax
cmp eax, 0x190
mov dword [0x46ab90], eax
jl 0x4281f3
and dword [0x46ab90], 0
jmp 0x4281f3
push 1
push eax
call fcn.0040de6e
pop ecx
pop ecx
xor eax, eax
inc eax
jmp 0x4284c2
cmp dword [ebp + 0x6c], 0
je 0x428497
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [ebp + 0x64]
mov ecx, dword [0x467b78]
cdq
push 0x18
push edx
push eax
call fcn.00401c1f
jmp 0x428483
push 1
push 0
push 0xffffffffffffffff
push 0x45bf4c
mov ecx, dword [0x467b78]
call fcn.0040184e
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret