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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x808c
call fcn.004b9d80
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp byte [edi], 0x3e
jne 0x44efbe
mov ecx, dword [0x4e7e38]
mov eax, str.UseErrorLevel
call fcn.0049e990
test eax, eax
setne bl
mov al, 3
cmp al, byte [edi + 1]
mov byte [esp + 0x18], bl
mov edx, dword [esp + 0x18]
sbb ecx, ecx
and ecx, dword [0x4e7dec]
xor esi, esi
push ecx
mov ecx, dword [0x4e7e38]
push 1
push edx
lea eax, [esp + 0x2c]
push eax
test bl, bl
sete dl
push ecx
mov ecx, dword [0x4e7e34]
movzx eax, dl
mov edx, dword [0x4e7e30]
push eax
push ecx
push esi
push 0x4ea1d0
call fcn.0044ab30
test eax, eax
jne 0x44efc0
test bl, bl
je 0x44efb3
mov edx, dword [0x4e86f0]
push 1
push esi
push 0xffffffffffffffff
push str.ERROR
push edx
call fcn.004a2810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor esi, esi
mov al, byte [edi]
cmp al, 0x5d
jne 0x44f0ee
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
mov eax, dword [0x4e7e30]
push esi
push esi
call fcn.0041c480
add esp, 0xc
mov byte [esp + 0xe], al
test al, al
jne 0x44f04c
lea eax, [esp + 0x28]
push esi
push eax
mov eax, dword [0x4e7e30]
call fcn.0046f2c0
add esp, 8
mov dword [esp + 0x2c], eax
cmp eax, esi
jne 0x44f023
mov ecx, dword [0x4e86f0]
push 1
push esi
push 0xffffffffffffffff
push 0x4bf81c
push ecx
call fcn.004a2810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0xc
jl 0x44f02d
cmp eax, 0x2b
jle 0x44f04c
mov edx, dword [0x4e86f0]
push 1
push esi
push 0xffffffffffffffff
push 0x4bf81c
push edx
call fcn.004a2810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [0x4e7e34]
movzx eax, word [ebx]
mov byte [esp + 0xd], 0
mov dword [esp + 0x18], 1
mov byte [esp + 0xc], 1
mov dword [esp + 0x10], esi
cmp ax, si
je 0x44f0d7
movzx edi, ax
test edi, 0xffffff80
jne 0x44f08e
push 2
push edi
call dword [sym.imp.MSVCR100.dll__isctype]
add esp, 8
cmp eax, esi
je 0x44f08e
and edi, 0xffffffdf
movzx eax, di
cmp eax, 0x44
je 0x44f0c6
cmp eax, 0x4c
je 0x44f0c0
cmp eax, 0x54
jne 0x44f0cb
lea esi, [ebx + 2]
mov byte [esp + 0xc], 0
call fcn.00426960
fmul qword [0x4de800]
call fcn.004b9c20
mov dword [esp + 0x10], eax
xor esi, esi
jmp 0x44f0cb
mov dword [esp + 0x18], esi
jmp 0x44f0cb
mov byte [esp + 0xd], 1
movzx eax, word [ebx + 2]
add ebx, 2
cmp ax, si
jne 0x44f070
lea eax, [esp + 0x90]
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], eax
jmp 0x44f149
mov ecx, dword [0x4e7e30]
mov edx, dword [0x4e7e38]
cmp al, 0x3e
je 0x44f107
cmp al, 0x5c
je 0x44f10b
cmp word [edx], si
jne 0x44f110
cmp al, 0x5c
jne 0x44f140
cmp word [ecx], si
je 0x44f140
mov byte [esp + 0xc], 0
mov esi, ecx
cmp al, 0x5c
je 0x44f11d
mov esi, edx
call fcn.00426960
fmul qword [0x4de800]
call fcn.004b9c20
mov dword [esp + 0x10], eax
cmp eax, 1
jge 0x44f149
mov dword [esp + 0x10], 0x1f4
jmp 0x44f149
mov byte [esp + 0xc], 1
mov dword [esp + 0x10], esi
mov esi, dword [ebp + 8]
cmp byte [esi], 0x3e
je 0x44f168
mov ecx, dword [0x4e86f0]
push 1
push 0
push 0xffffffffffffffff
push 0x4bbb9c
push ecx
call fcn.004a2810
cmp byte [esi], 0x5c
jne 0x44f182
mov edi, 1
mov ecx, esi
call fcn.0043ccc0
mov byte [esp + 0xf], 1
cmp eax, edi
je 0x44f187
mov byte [esp + 0xf], 0
xor ebx, ebx
mov edx, esi
mov eax, 0x4001
lea edi, [esp + 0x90]
cmp byte [edx + 1], bl
jbe 0x44f203
test eax, eax
jne 0x44f1aa
mov dword [esp + ebx*4 + 0x30], 0x4bd2c4
jmp 0x44f1f7
lea esi, [eax - 1]
mov eax, dword [ebx*4 + 0x4e7e30]
push esi
push eax
push edi
mov dword [esp + ebx*4 + 0x3c], edi
call dword [sym.imp.MSVCR100.dll_wcsncpy]
add esp, 0xc
xor ecx, ecx
mov eax, edi
mov word [edi + esi*2], cx
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x44f1d0
sub eax, edx
sar eax, 1
lea edi, [edi + eax*2 + 2]
lea eax, [esp + 0x90]
mov edx, edi
sub edx, eax
sar edx, 1
mov eax, 0x4001
sub eax, edx
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 1]
inc ebx
cmp ebx, edx
jl 0x44f19c
mov eax, dword fs:[0x24]
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x14], eax
jmp 0x44f220
mov esi, dword [0x4e4b24]
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx]
add eax, 0xffffffc2
cmp eax, 0x3e
ja case.0x44f23f.63
movzx edx, byte [eax + 0x44f6d8]
jmp dword [edx*4 + 0x44f6b8]
mov ebx, dword [esp + 0x40]
mov eax, ecx
mov al, byte [eax + 1]
cmp al, 4
ja 0x44f258
mov ebx, 0x4bd2c4
mov ecx, dword [esp + 0x3c]
cmp al, 3
ja 0x44f265
mov ecx, 0x4bd2c4
mov edi, dword [esp + 0x34]
cmp al, 1
ja 0x44f272
mov edi, 0x4bd2c4
mov edx, dword [esp + 0x30]
test al, al
jne 0x44f27f
mov edx, 0x4bd2c4
push 0
push 0
push 1
push 0
push ecx
push esi
mov ecx, ebx
call fcn.004a3ba0
add esp, 0x18
test eax, eax
je case.0x44f23f.63
mov eax, dword [0x4e4b24]
cmp dword [eax + 0x54], 0xffffffff
jle 0x44f620
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4ea158], eax
jne 0x44f611
mov ecx, dword [0x4e4b24]
mov edx, dword [ecx + 0x54]
push 1
push edx
call fcn.00401510
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov al, byte [ecx + 1]
mov ebx, dword [esp + 0x40]
cmp al, 4
ja 0x44f2ee
mov ebx, 0x4bd2c4
mov ecx, dword [esp + 0x3c]
cmp al, 3
ja 0x44f2fb
mov ecx, 0x4bd2c4
mov edi, dword [esp + 0x34]
cmp al, 1
ja 0x44f308
mov edi, 0x4bd2c4
mov edx, dword [esp + 0x30]
test al, al
jne 0x44f315
mov edx, 0x4bd2c4
push 0
push 0
push 0
push 0
push ecx
push esi
mov ecx, ebx
call fcn.004a3ba0
add esp, 0x18
test eax, eax
jne case.0x44f23f.63
mov edx, dword [0x4e4b24]
cmp dword [edx + 0x54], 0xffffffff
jle 0x44f63e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4ea158], eax
jne 0x44f62e
mov eax, dword [0x4e4b24]
mov ecx, dword [eax + 0x54]
push 1
push ecx
call fcn.00401510
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esp + 0x40]
mov edx, ecx
mov al, byte [edx + 1]
cmp al, 4
ja 0x44f386
mov edi, 0x4bd2c4
mov edx, dword [esp + 0x3c]
cmp al, 3
ja 0x44f393
mov edx, 0x4bd2c4
mov ecx, dword [esp + 0x34]
cmp al, 1
ja 0x44f3a0
mov ecx, 0x4bd2c4
test al, al
mov eax, dword [esp + 0x30]
jne 0x44f3ad
mov eax, 0x4bd2c4
push 1
push edi
push edx
push ecx
push eax
push esi
call fcn.004a39c0
add esp, 0x18
test eax, eax
je case.0x44f23f.63
mov ecx, dword [0x4e4b24]
cmp dword [ecx + 0x54], 0xffffffff
jle 0x44f65c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x4ea158], eax
jne 0x44f64c
mov edx, dword [0x4e4b24]
mov eax, dword [edx + 0x54]
push 1
push eax
call fcn.00401510
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esp + 0x40]
mov eax, ecx
mov al, byte [eax + 1]
cmp al, 4
ja 0x44f41a
mov edi, 0x4bd2c4
mov edx, dword [esp + 0x3c]
cmp al, 3
ja 0x44f427
mov edx, 0x4bd2c4
mov ecx, dword [esp + 0x34]
cmp al, 1
ja 0x44f434
mov ecx, 0x4bd2c4
test al, al
mov eax, dword [esp + 0x30]
jne 0x44f441
mov eax, 0x4bd2c4
push 1
push edi
push edx
push ecx
push eax
push esi
call fcn.004a39c0
add esp, 0x18
test eax, eax
je 0x44f29b
jmp case.0x44f23f.63
cmp byte [esp + 0xf], 0
je 0x44f477
call dword [sym.imp.USER32.dll_CountClipboardFormats]
test eax, eax
jne 0x44f620
jmp case.0x44f23f.63
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 0xd
call esi
test eax, eax
jne 0x44f620
push 0xf
call esi
test eax, eax
jne 0x44f620
jmp case.0x44f23f.63
cmp byte [esp + 0xe], 0
je 0x44f4be
mov ecx, dword [esp + 0x18]
mov bl, byte [esp + 0xe]
push ecx
call fcn.0046f4d0
add esp, 4
cmp al, byte [esp + 0xd]
je 0x44f620
jmp case.0x44f23f.63
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
push 0
push edx
lea eax, [esp + 0x88]
call fcn.0046f580
fldz
fucompp
add esp, 8
fnstsw ax
test ah, 0x44
jnp 0x44f4e7
mov al, 1
jmp 0x44f4e9
xor al, al
cmp al, byte [esp + 0xd]
je 0x44f620
jmp case.0x44f23f.63
cmp dword [esp + 0x20], 0
je 0x44f607
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [esp + 0x1c], 0x103
jne 0x44f66a
mov edx, dword [esp + 0x24]
cmp dword [0x4ea158], edx
jne 0x44f5da
cmp byte [esp + 0xc], 0
jne 0x44f54e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x10]
sub edx, eax
cmp edx, 5
jle 0x44f5e1
push 1
push 0x8000012f
call fcn.00401510
add esp, 8
test al, al
je 0x44f220
mov esi, dword [0x4e4b24]
cmp byte [esi + 0xf9], 0
je 0x44f226
mov eax, dword [0x4e89f4]
mov ecx, eax
test eax, eax
jne 0x44f588
mov ecx, 0x190
mov edx, dword [ecx*4 + 0x4e89f4]
cmp edx, dword [ebp + 8]
jne 0x44f5a5
mov edx, dword [esp + 0x14]
cmp dword [ecx*4 + 0x4e779c], edx
je 0x44f226
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov dword [eax*4 + 0x4e89f8], ecx
mov dword [eax*4 + 0x4e77a0], edx
inc eax
mov dword [0x4e89f4], eax
cmp eax, 0x190
jl 0x44f226
mov dword [0x4e89f4], 0
jmp 0x44f226
cmp byte [esp + 0xc], 0
jne 0x44f5fa
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x10]
sub ecx, eax
cmp ecx, 5
jle 0x44f696
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x44f220
mov dword [esp + 0x1c], 0
jmp 0x44f675
mov eax, dword [0x4e4b24]
mov ecx, dword [eax + 0x54]
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [0x4e4b24]
mov eax, dword [edx + 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [0x4e4b24]
mov edx, dword [ecx + 0x54]
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x1c]
cdq
push 0x18
push edx
push eax
mov eax, dword [0x4e86f0]
call fcn.004010e0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [0x4e86f0]
push 1
push 0
push 0xffffffffffffffff
push 0x4bf81c
push eax
call fcn.004a2810
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4