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

Disassembly:
mov eax, 0x431dd2
call fcn.00430710
sub esp, 0x54
push ebx
push esi
push edi
push 0xb769ffff
push dword [0x43acac]
xor ebx, ebx
mov dword [ebp - 0x10], ebx
call fcn.0040b0f0
or byte [0x43ac7e], 0xff
pop ecx
pop ecx
mov word [0x43ac90], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [0x43ac7a], al
mov dword [ebp - 0x1c], ebx
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x1c]
mov dword [0x43ac98], 0xcb59fffe
push ecx
mov eax, dword [esi]
push esi
mov dword [ebp - 4], ebx
call dword [eax + 0x24]
mov edi, dword [sym.imp.USER32.dll_GetCursor]
mov dword [ebp + 8], eax
call edi
add byte [0x43ac78], al
or byte [0x43ac7d], 0xff
cmp dword [ebp + 8], ebx
mov eax, dword [ebp - 0x1c]
jl 0x41611c
cmp eax, ebx
je 0x41611c
lea ecx, [ebp - 0x30]
call fcn.0042964f
mov eax, dword [esi]
lea ecx, [ebp - 0x30]
push ecx
push esi
mov byte [ebp - 4], 1
call dword [eax + 0xa0]
push dword [0x43acb4]
mov eax, 0xde7ffff
sub eax, dword [0x43ac98]
push 0x6f3fffff
mov dword [0x43ac98], eax
call fcn.0040aeeb
pop ecx
mov byte [0x43ac7a], al
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x43aca4], eax
mov dword [ebp - 0x20], ebx
movsx eax, word [0x43ac88]
movsx ecx, byte [0x43ac79]
and eax, ecx
lea edx, [ebp - 0x10]
add dword [0x43acbc], eax
xor eax, eax
cmp byte [0x43ac7f], bl
push edx
mov byte [ebp - 4], 2
setne al
add word [0x43ac92], ax
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x174]
mov ax, word [0x43ac84]
mov ecx, dword [0x43aca0]
neg ax
mov word [0x43ac8a], ax
movsx eax, word [0x43ac8e]
lea eax, [ecx + eax - 0x408c0001]
mov dword [0x43aca0], eax
movsx eax, byte [0x43ac7b]
push eax
push 0x6ef3ffff
call fcn.0040b0ac
pop ecx
mov byte [0x43ac81], al
pop ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x20]
call fcn.00418e31
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharAlphaA]
add word [0x43ac94], ax
mov al, byte [0x43aca8]
or byte [0x43ac7a], 0xff
mov byte [0x43ac7e], al
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x415b87
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call edi
add byte [0x43ac7d], al
mov dword [ebp - 0x10], ebx
movsx eax, word [0x43ac8e]
push eax
push 0xa39fffff
call fcn.0040b0f0
mov dword [0x43acb0], eax
mov al, byte [0x43ac8e]
and al, byte [0x43ac7a]
inc word [0x43ac8a]
pop ecx
mov dword [ebp - 0x18], ebx
pop ecx
mov byte [0x43ac78], al
or byte [0x43ac7f], 0xff
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetVersion]
push 0xffffffffffffffff
push 0x43a1fc
mov dword [0x43acb8], eax
mov word [ebp - 0x50], 8
call fcn.00412eca
mov dword [ebp - 0x48], eax
push 0xdb69ffff
movsx eax, byte [0x43ac7a]
push eax
call fcn.0040af94
add esp, 0x10
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x50]
mov dword [0x43acb4], eax
push edx
mov eax, dword [ebp - 0x20]
sub esp, 0x10
mov edi, esp
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x30]
push dword [ebp - 0x48]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [0x43ac80], al
movsx eax, byte [0x43ac7b]
push eax
push 0x333fffff
call fcn.0040af6d
add word [0x43ac8e], ax
pop ecx
pop ecx
push dword [ebp - 0x10]
lea ecx, [ebp - 0x18]
call fcn.00418e31
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x415c6a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, byte [0x43ac7f]
mov dword [ebp - 0x10], ebx
dec al
mov byte [0x43ac7b], al
mov al, byte [0x43ac8e]
add al, byte [0x43ac7c]
mov byte [0x43ac81], al
mov eax, dword [0x43acb4]
and eax, 0xd8d3ffff
add dword [0x43acb4], eax
movsx eax, word [0x43ac90]
push eax
movsx eax, word [0x43ac8a]
push eax
call fcn.0040afcb
cmp dword [ebp - 0x18], ebx
pop ecx
pop ecx
mov word [0x43ac82], ax
je 0x4160e6
add dword [0x43acb4], 0x5820000
inc byte [0x43ac80]
mov dword [0x43aca4], 0xb3a9ffff
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov word [0x43ac92], ax
mov dword [ebp - 0x14], ebx
cmp dword [0x43aca4], ebx
mov byte [ebp - 4], 4
setne al
mov byte [0x43ac7b], al
movsx eax, byte [0x43ac7c]
push eax
push 0xca2dffff
call fcn.0040b037
mov ecx, dword [0x43aca8]
mov dword [0x43acbc], eax
mov eax, dword [0x43acb8]
mov word [ebp - 0x50], 3
sub ecx, eax
add al, byte [0x43ac79]
add word [0x43ac84], cx
add byte [0x43ac78], al
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x48], eax
movsx eax, word [0x43ac90]
push eax
movsx eax, word [0x43ac92]
push eax
call fcn.0040af32
add esp, 0x10
lea edx, [ebp - 0x10]
lea esi, [ebp - 0x50]
add byte [0x43ac7e], al
push edx
mov eax, dword [ebp - 0x18]
sub esp, 0x10
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x50]
mov edi, esp
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
push dword [ebp - 0x10]
lea ecx, [ebp - 0x14]
call fcn.00418f93
xor eax, eax
cmp byte [0x43ac7e], bl
push dword [0x43ac98]
setne al
add word [0x43ac82], ax
movsx eax, byte [0x43ac78]
push eax
call fcn.0040b037
push dword [0x43acbc]
mov dword [0x43ac9c], eax
push 0x5f39ffff
call fcn.0040af6d
add dword [0x43acac], eax
mov eax, dword [ebp - 0x10]
add esp, 0x10
cmp eax, ebx
je 0x415ddb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
movsx eax, word [0x43ac92]
push 0xa9a9ffff
push eax
call fcn.0040b037
add word [0x43ac92], ax
add dword [0x43aca0], 0x3449ffff
movsx eax, byte [0x43ac7e]
imul eax, eax, 0xf989ffff
add dword [0x43ac98], eax
cmp dword [ebp - 0x14], ebx
pop ecx
mov dword [ebp - 0x10], ebx
pop ecx
je 0x4160d5
movsx eax, word [0x43ac86]
push eax
push 0x54e1ffff
call fcn.0040b0ac
add byte [0x43ac7f], al
mov al, byte [0x43ac88]
pop ecx
dec al
add byte [0x43ac7d], al
dec word [0x43ac88]
pop ecx
lea ecx, [ebp - 0x28]
call fcn.0042964f
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x28]
push edx
push eax
mov ecx, dword [eax]
mov byte [ebp - 4], 5
call dword [ecx + 0x20]
test eax, eax
jl 0x4160b8
movsx eax, byte [0x43ac7e]
push eax
push 0x3955ffff
call fcn.0040af32
add dword [0x43acb4], eax
movsx eax, byte [0x43ac80]
push eax
push dword [0x43acb8]
call fcn.0040af94
add esp, 0x10
lea ecx, [ebp - 0x28]
mov byte [0x43ac7b], al
mov byte [0x43ac78], 1
call fcn.00429fcb
mov esi, eax
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x50], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x50]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 6
call fcn.00429fcb
mov esi, eax
mov al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x40], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov al, byte [0x43ac8a]
push 0x7ba5ffff
sub al, byte [0x43ac8c]
push 0xfcbdffff
mov byte [ebp - 4], 7
add byte [0x43ac7d], al
call fcn.0040b0f0
add byte [0x43ac7c], al
or word [0x43ac84], 0xffff
pop ecx
pop ecx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x64]
dec eax
cmp eax, ebx
mov dword [ebp + 8], eax
jl 0x416045
add ecx, 0x3c
mov dword [ebp + 0xc], ecx
movsx ax, byte [0x43ac81]
push dword [0x43acb8]
and eax, dword [0x43acac]
mov word [0x43ac82], 1
push 0xf207ffff
mov word [0x43ac8e], ax
call fcn.0040b0f0
mov esi, dword [ebp + 0xc]
add word [0x43ac8e], ax
lea edi, [ebp - 0x60]
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop ecx
push dword [ebp + 8]
lea ecx, [ebp - 0x60]
movsd dword es:[edi], dword [esi]
call fcn.0040a578
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
cmp dword [eax + 8], ebx
jbe 0x415faf
dec dword [ebp + 8]
jns 0x415f50
jmp 0x416045
push 0x4a81ffff
push dword [0x43aca0]
call fcn.0040b087
mov esi, dword [ebp + 0xc]
lea edi, [ebp - 0x60]
mov byte [0x43ac7a], al
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop ecx
push dword [ebp + 8]
lea ecx, [ebp - 0x60]
movsd dword es:[edi], dword [esi]
call fcn.0040a578
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [eax]
lea eax, [ebp - 0x50]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov esi, dword [ebp + 0xc]
lea edi, [ebp - 0x60]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push dword [ebp + 8]
lea ecx, [ebp - 0x60]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0040a578
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add ecx, 0x10
push dword [eax]
lea eax, [ebp - 0x40]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
movsx eax, word [0x43ac8a]
push eax
push 0x5697ffff
call fcn.0040b0f0
add byte [0x43ac7f], al
pop ecx
pop ecx
mov dword [0x43acb8], 0x91a40001
movsx eax, byte [0x43ac7f]
or eax, 0x4f87ffff
push 0xcb0bffff
add dword [0x43ac9c], eax
push 0x873ffff
call fcn.0040af94
mov word [0x43ac86], ax
movsx eax, word [0x43ac8c]
push eax
movsx eax, byte [0x43ac7c]
push eax
call fcn.0040afcb
add dword [0x43acbc], eax
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.0042a140
lea ecx, [ebp - 0x30]
call fcn.0042a140
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 5
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [0x43acb4]
lea ecx, [ebp - 0x28]
imul eax, eax, 0x7833ffff
add dword [0x43acb8], eax
mov byte [ebp - 4], 4
call fcn.004296bf
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x4160e6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x4160f7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x416108
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.004296bf
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
jmp 0x416120
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x41612a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0xc