Function at 0x1004fdb0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b39f0
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [section..data]
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 esi, ecx
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2c], eax
cmp dword [edi + 0x14], 0x10
mov ebx, dword [edi + 0x10]
jb 0x1004fdf3
mov ecx, dword [edi]
jmp 0x1004fdf5
mov ecx, edi
mov eax, 0x14
mov edx, str.inputmethod.blinking
cmp ebx, eax
cmovb eax, ebx
push eax
call fcn.10004f40
add esp, 4
test eax, eax
jne 0x1004fe25
cmp ebx, 0x14
jae 0x1004fe1b
or eax, 0xffffffff
jmp 0x1004fe23
xor eax, eax
cmp ebx, 0x14
setne al
test eax, eax
sete al
test al, al
je 0x1004ffca
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
push 1
push 0x100c2f34
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.10003fc0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
push eax
call fcn.1009e1a0
add esp, 0xc
cmp dword [ebp - 0x14], 0x10
jb 0x1004fe96
push dword [ebp - 0x28]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ebx, dword [ebp - 0x34]
mov eax, 0x2aaaaaab
mov edi, dword [ebp - 0x38]
mov ecx, ebx
sub ecx, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jb 0x1004ff95
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [esi + 0x1071], 1
call ebx
mov dword [esi + 0x1074], eax
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x14], 0x10
jb 0x1004feda
mov eax, dword [eax]
mov edi, dword [sym.imp.MSVCR120.dll_atoi]
push eax
call edi
mov ecx, dword [ebp - 0x38]
add esp, 4
add ecx, 0x18
mov dword [ebp - 0x40], eax
cmp dword [ecx + 0x14], 0x10
jb 0x1004fef7
mov ecx, dword [ecx]
push ecx
call edi
mov ecx, dword [esi + 0xec8]
add esp, 4
mov dword [ebp - 0x3c], eax
cmp ecx, 0x5a
je 0x1004ff21
cmp ecx, 0x10e
je 0x1004ff21
mov edi, dword [esi + 0xf3c]
mov eax, dword [esi + 0xf40]
jmp 0x1004ff2d
mov edi, dword [esi + 0xf40]
mov eax, dword [esi + 0xf3c]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x20]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x40]
cdq
idiv edi
mov ecx, eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x3c]
cdq
idiv dword [ebp - 0x2c]
cmp dword [esi + 0x1080], ecx
jne 0x1004ff6a
cmp dword [esi + 0x1084], eax
je 0x1004ff74
add dword [esi + 0x108c], 0x100
mov dword [esi + 0x1080], ecx
mov dword [esi + 0x1084], eax
call ebx
mov ecx, esi
mov dword [esi + 0x1088], eax
call fcn.10050010
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x1004ffe1
push ebx
push edi
call fcn.10015e30
push dword [ebp - 0x38]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
jmp 0x1004ffe1
mov edx, str.inputmethod.end_blink
mov ecx, edi
call fcn.10012400
test al, al
je 0x1004ffe1
mov byte [esi + 0x1071], 0
mov ecx, esi
call fcn.10050100
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.100ad688
mov esp, ebp
pop ebp
ret 8