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

Disassembly:
push 0xffffffffffffffff
push 0x4adaa1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov dword [esp + 0x18], ebp
call fcn.004686c0
mov al, byte [esp + 0x13]
xor ebx, ebx
lea ecx, [ebp + 0x34]
mov dword [ebp + 0x2c], 0x4b1944
mov dword [ebp + 0x30], ebx
push ebx
mov dword [esp + 0x28], ebx
mov byte [ecx], 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_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x44]
push ebx
mov byte [esp + 0x28], 1
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov al, byte [esp + 0x13]
lea ecx, [ebp + 0x54]
push ebx
mov byte [esp + 0x28], 2
mov byte [ecx], 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_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x64]
push ebx
mov byte [esp + 0x28], 3
mov byte [ecx], dl
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 al, byte [esp + 0x13]
lea ecx, [ebp + 0x74]
push ebx
mov byte [esp + 0x28], 4
mov byte [ecx], 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_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x84]
push ebx
mov byte [esp + 0x28], 5
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov al, byte [esp + 0x13]
lea ecx, [ebp + 0x94]
push ebx
mov byte [esp + 0x28], 6
mov byte [ecx], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0xa4]
push ebx
mov byte [esp + 0x28], 7
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov al, byte [esp + 0x13]
lea ecx, [ebp + 0xb4]
push ebx
mov byte [esp + 0x28], 8
mov byte [ecx], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0xc4]
push ebx
mov byte [esp + 0x28], 9
mov byte [ecx], dl
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 esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov dword [ebp + 0x17c], eax
mov dword [ebp + 0x180], ebx
call esi
mov dword [ebp + 0x184], eax
mov dword [ebp + 0x188], ebx
call esi
mov dword [ebp + 0x18c], eax
mov dword [ebp + 0x190], ebx
call esi
mov dword [ebp + 0x194], eax
mov dword [ebp + 0x198], ebx
call esi
mov dword [ebp + 0x19c], eax
mov dword [ebp + 0x1a0], ebx
call esi
mov dword [ebp + 0x1a4], eax
mov dword [ebp + 0x1a8], ebx
mov al, byte [esp + 0x13]
lea esi, [ebp + 0x1ac]
mov byte [esi], al
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov cl, byte [esp + 0x13]
mov dword [ebp + 0x1c0], ebx
mov byte [ebp + 0x1bc], cl
mov dword [ebp + 0x1c4], ebx
mov dword [ebp + 0x1c8], ebx
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x1cc]
push ebx
mov byte [esp + 0x28], 0x12
mov byte [ecx], dl
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 al, byte [esp + 0x13]
mov dword [ebp + 0x1e0], ebx
mov byte [ebp + 0x1dc], al
mov dword [ebp + 0x1e4], ebx
mov dword [ebp + 0x1e8], ebx
mov cl, byte [esp + 0x13]
mov dword [ebp + 0x1f0], ebx
mov byte [ebp + 0x1ec], cl
mov dword [ebp + 0x1f4], ebx
mov dword [ebp + 0x1f8], ebx
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x1fc]
push ebx
mov byte [esp + 0x28], 0x15
mov byte [ecx], dl
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 al, byte [esp + 0x13]
mov dword [ebp + 0x210], ebx
mov byte [ebp + 0x20c], al
mov dword [ebp + 0x214], ebx
mov dword [ebp + 0x218], ebx
mov cl, byte [esp + 0x13]
mov dword [ebp + 0x220], ebx
mov byte [ebp + 0x21c], cl
mov dword [ebp + 0x224], ebx
mov dword [ebp + 0x228], ebx
lea ecx, [ebp + 0x230]
mov byte [esp + 0x24], 0x18
call fcn.0047d500
mov dl, byte [esp + 0x13]
mov byte [ebp + 0x330], dl
mov dword [ebp + 0x334], ebx
mov dword [ebp + 0x338], ebx
mov dword [ebp + 0x33c], ebx
lea ecx, [ebp + 0x350]
mov byte [esp + 0x24], 0x1a
call fcn.00486510
mov al, byte [esp + 0x13]
mov dword [ebp + 0x3f0], ebx
mov byte [ebp + 0x3ec], al
mov dword [ebp + 0x3f4], ebx
mov dword [ebp + 0x3f8], ebx
mov cl, byte [esp + 0x13]
mov dword [ebp + 0x400], ebx
mov byte [ebp + 0x3fc], cl
mov dword [ebp + 0x404], ebx
mov dword [ebp + 0x408], ebx
mov dword [ebp], 0x4b18f0
lea eax, [ebp + 0xec]
mov dword [ebp + 0x2c], 0x4b18e0
xor edx, edx
mov word [ebp + 0xe8], bx
mov dword [eax], edx
mov byte [esp + 0x24], 0x1d
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [ebp + 0x100], ebx
mov dword [ebp + 0x104], ebx
mov dword [ebp + 0x108], ebx
mov dword [ebp + 0x10c], ebx
mov dword [ebp + 0xfc], 7
mov dword [ebp + 0x144], ebx
mov dword [ebp + 0x148], ebx
mov dword [ebp + 0x150], ebx
mov dword [ebp + 0x154], ebx
mov dword [ebp + 0x15c], ebx
mov dword [ebp + 0x120], ebx
mov dword [ebp + 0x128], ebx
mov dword [ebp + 0x110], ebx
mov dword [ebp + 0x118], ebx
mov dword [ebp + 0x138], ebx
mov dword [ebp + 0x130], ebx
mov dword [ebp + 0x124], ebx
mov dword [ebp + 0x12c], ebx
mov dword [ebp + 0x114], ebx
mov dword [ebp + 0x11c], ebx
mov dword [ebp + 0x13c], ebx
mov dword [ebp + 0x140], ebx
mov dword [ebp + 0x134], ebx
mov dword [ebp + 0x160], ebx
mov dword [ebp + 0x164], ebx
mov dword [ebp + 0xe0], ebx
mov dword [ebp + 0xe4], ebx
mov dword [ebp + 0x14c], ebx
mov eax, dword [0x4d3770]
mov dword [ebp + 0x328], 0x100000
mov dword [ebp + 0x16c], ebx
lea eax, [eax + eax*4]
mov dword [ebp + 0x170], ebx
mov dword [ebp + 0x318], ebx
mov dword [ebp + 0x174], ebx
lea eax, [eax + eax*4]
mov dword [ebp + 0x178], ebx
mov dword [ebp + 0xd4], ebx
mov dword [ebp + 0xd8], ebx
lea ecx, [eax + eax*4]
mov dword [ebp + 0xdc], ebx
shl ecx, 3
mov dword [ebp + 0x168], ecx
mov dword [ebp + 0x31c], ebx
mov dword [ebp + 0x320], ebx
mov dword [ebp + 0x32c], ebx
mov dword [ebp + 0x3e0], ebx
mov dword [ebp + 0x3e4], ebx
mov dword [ebp + 0x158], 1
mov dword [ebp + 0x340], ebx
mov edi, 0x4b18d4
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp + 0x344], ebx
mov dword [ebp + 0x348], ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
cmp edi, 0xfffffffd
mov dword [esp + 0x14], edi
jbe 0x46f996
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov ecx, dword [esi + 4]
cmp ecx, ebx
je 0x46f9bc
mov al, byte [ecx - 1]
cmp al, bl
je 0x46f9bc
cmp al, 0xff
je 0x46f9bc
cmp edi, ebx
jne 0x46f9e2
dec al
push ebx
mov byte [ecx - 1], al
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x46fa19
cmp edi, ebx
jne 0x46f9cc
push 1
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x46fa19
mov eax, dword [esi + 0xc]
cmp eax, 0x1f
ja 0x46f9d8
cmp eax, edi
jae 0x46f9eb
push 1
mov ecx, esi
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 edi
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
mov ecx, edi
mov edi, dword [ebp + 0x1b0]
mov edx, ecx
mov esi, 0x4b18d4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x1b0]
mov dword [ebp + 0x1b4], eax
mov byte [eax + ecx], bl
mov ecx, dword [esp + 0x1c]
pop edi
mov dword [ebp + 0x3e8], ebx
mov dword [ebp + 0x34c], ebx
mov eax, ebp
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret