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

Disassembly:
push 0xffffffffffffffff
push 0x4686e6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov eax, dword [esp + 0x128]
push ebx
push ebp
push esi
mov esi, ecx
push edi
push eax
lea ecx, [esp + 0x54]
call fcn.00405dc0
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x28]
push ecx
xor ebp, ebp
push 4
push edx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x13c], ebp
mov dword [esp + 0x48], ebp
call fcn.00406080
mov edi, eax
cmp di, bp
jne 0x4605b4
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x44], vtable.CTakeSerial.0
mov dword [esp + 0x48], esi
call dword [eax]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 8]
mov dword [esp + 0x4c], ebp
mov eax, dword [esi]
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
mov byte [esp + 0x134], 1
call dword [eax + 0x8c]
mov ebx, dword [esp + 0x148]
cmp ebx, ebp
je 0x45ffa2
mov edx, dword [esp + 0x14c]
push 0xbf800000
push 3
push edx
call ebx
add esp, 0xc
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
push eax
mov dword [esp + 0x38], ebp
call fcn.004067d0
mov edi, eax
cmp di, bp
jne 0x46059f
mov al, byte [esp + 0x54]
mov byte [esp + 0x1b], 0
test al, al
mov al, byte [esp + 0x144]
jne 0x45ffea
cmp al, 0x41
jne 0x45ffe8
mov byte [esp + 0x14], 0x42
mov byte [esp + 0x15], 0x4c
mov byte [esp + 0x16], 0
jmp 0x45fffd
inc al
mov byte [esp + 0x14], al
mov byte [esp + 0x15], 0x42
mov byte [esp + 0x16], 0x4c
mov byte [esp + 0x17], 0
mov ecx, dword [esp + 0x14c]
lea edx, [esp + 0x12]
push ecx
push ebx
push ebp
lea eax, [esp + 0x20]
push edx
push eax
push 1
mov ecx, esi
call fcn.0045fc20
mov edi, eax
cmp di, bp
jne 0x460514
mov al, byte [esp + 0x12]
cmp al, 0x51
je 0x460036
cmp al, 0x53
mov byte [esp + 0x24], 0
jne 0x46003b
mov byte [esp + 0x24], 1
cmp al, 0x50
je 0x46037f
cmp al, 0x51
je 0x46037f
lea ecx, [esp + 0x38]
push 0x1f4
push ecx
mov ecx, dword [esi + 0x1b8]
mov byte [esp + 0x23], 1
call fcn.004490e0
mov edi, eax
cmp di, bp
jne 0x460514
mov eax, dword [esp + 0x38]
cmp al, 0x50
je 0x4602ab
cmp al, 0x51
je 0x4602ab
mov ebp, dword [esp + 0x140]
mov ecx, dword [esi + 0x1b8]
cmp bp, 0xffff
push 0x10
jne 0x4600cf
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 1
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 0x46
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 3
call fcn.004492d0
mov edi, 0x48a
jmp 0x460514
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 1
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 0x50
call fcn.004492d0
cmp bp, 0xfffe
jne 0x4601a8
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push 0xffff
lea edx, [esp + 0x20]
push str._04X
push edx
call edi
mov ecx, dword [esi + 0x1b8]
add esp, 0xc
lea eax, [esp + 0x1c]
push 0
push 1
push 5
push 4
push eax
call fcn.00448d00
push 0xffff
lea ecx, [esp + 0x20]
push str._04X
push ecx
call edi
mov ecx, dword [esi + 0x1b8]
add esp, 0xc
lea edx, [esp + 0x1c]
push 0
push 1
push 5
push 4
push edx
call fcn.00448d00
push 0xffff
lea eax, [esp + 0x20]
push str._04X
push eax
call edi
add esp, 0xc
lea ecx, [esp + 0x1c]
push 0
push 1
push 5
push 4
push ecx
mov ecx, dword [esi + 0x1b8]
call fcn.00448d00
push 0xffff
lea edx, [esp + 0x20]
push str._04X
push edx
call edi
add esp, 0xc
lea eax, [esp + 0x1c]
push 0
push 1
push 5
push 4
push eax
jmp 0x46025e
mov ecx, dword [esp + 0x28]
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
and ecx, 0xffff
lea edx, [esp + 0x1c]
push ecx
push str._04X
push edx
call edi
mov ecx, dword [esi + 0x1b8]
add esp, 0xc
lea eax, [esp + 0x1c]
push 0
push 1
push 5
push 4
push eax
call fcn.00448d00
mov ecx, dword [esp + 0x2a]
lea edx, [esp + 0x1c]
and ecx, 0xffff
push ecx
push str._04X
push edx
call edi
mov ecx, dword [esi + 0x1b8]
add esp, 0xc
lea eax, [esp + 0x1c]
push 0
push 1
push 5
push 4
push eax
call fcn.00448d00
and ebp, 0xffff
lea ecx, [esp + 0x1c]
push ebp
push str._04X
push ecx
call edi
mov ecx, dword [esi + 0x1b8]
add esp, 0xc
lea edx, [esp + 0x1c]
push 0
push 1
push 5
push 4
push edx
call fcn.00448d00
push 0
lea eax, [esp + 0x20]
push str._04X
push eax
call edi
add esp, 0xc
lea ecx, [esp + 0x1c]
push 0
push 1
push 5
push 4
push ecx
mov ecx, dword [esi + 0x1b8]
call fcn.00448d00
mov ecx, dword [esi + 0x1b8]
push 3
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
lea edx, [esp + 0x13]
push 0x1388
push edx
call fcn.004490e0
mov edi, eax
test di, di
jne 0x460514
cmp byte [esp + 0x13], 0x46
jne 0x460397
mov edi, 0x48b
jmp 0x460514
mov ecx, dword [esp + 0x2e]
mov edx, dword [esp + 0x2c]
push eax
lea eax, [esp + 0x17]
push 0x1f4
push eax
mov eax, dword [esp + 0x36]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0045f2d0
mov edi, eax
cmp di, bp
jne 0x460514
mov al, byte [esp + 0x13]
mov ecx, dword [esi + 0x1b8]
test al, al
push 0x10
je 0x460349
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 1
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 0x50
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 3
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
lea edx, [esp + 0x12]
push 0x1f4
push edx
call fcn.004490e0
mov edi, eax
cmp di, bp
jne 0x460514
cmp byte [esp + 0x12], 0x50
je 0x460397
mov edi, 0x414
jmp 0x460514
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 1
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 0x46
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 3
call fcn.004492d0
mov edi, 0x489
jmp 0x460514
cmp dword [esp + 0x5c], 2
jbe 0x460397
test byte [esp + 0x2e], 1
jne 0x460397
mov edi, 0x48d
jmp 0x460514
mov eax, dword [esp + 0x14c]
mov ecx, esi
push eax
push ebx
call fcn.0045f6c0
mov edi, eax
test di, di
jne 0x460514
mov al, byte [esp + 0x1b]
test al, al
je 0x4604f3
mov ebp, dword [esp + 0x13c]
cmp ebp, 0x9600
jg 0x4603eb
je 0x4603e7
cmp ebp, 0x2580
je 0x4603e3
cmp ebp, 0x4b00
jne 0x4603fb
mov bl, 0x31
jmp 0x46040a
mov bl, 0x30
jmp 0x46040a
mov bl, 0x32
jmp 0x46040a
cmp ebp, 0xe100
je 0x460408
cmp ebp, 0x1c200
je 0x460404
mov bl, 0x33
mov ebp, 0xe100
jmp 0x46040a
mov bl, 0x34
jmp 0x46040a
mov bl, 0x33
mov ecx, dword [esi + 0x1b8]
push 0x10
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 1
call fcn.004492d0
movsx cx, bl
push ecx
mov ecx, dword [esi + 0x1b8]
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
push 3
call fcn.004492d0
mov ecx, dword [esi + 0x1b8]
lea edx, [esp + 0x12]
push 0x1388
push edx
call fcn.004490e0
mov edi, eax
test di, di
jne 0x460514
cmp byte [esp + 0x12], 0x46
jne 0x460472
mov edi, 0x414
jmp 0x460514
mov ecx, dword [esi + 0x1b8]
call fcn.00448000
mov edi, eax
test di, di
jne 0x460514
mov ecx, dword [esi + 0x1b8]
push ebp
call fcn.004492b0
mov edi, eax
test di, di
jne 0x460514
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esi + 0x1b8]
push 0
call fcn.004481b0
mov edi, eax
test di, di
jne 0x460514
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xb4]
mov edi, eax
test di, di
jne 0x460514
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0xb0]
mov edi, eax
test di, di
jne 0x460514
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax + 0xa4]
mov edi, eax
test di, di
jne 0x460514
mov ebx, dword [esp + 0x148]
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
push ecx
push ebx
push edx
lea ecx, [esp + 0x5c]
push eax
push ecx
mov ecx, esi
call fcn.0045f800
mov edi, eax
mov ecx, dword [esi + 0x1b8]
call fcn.00448000
mov edx, dword [esp + 0x40]
mov ecx, dword [esi + 0x1b8]
push edx
call fcn.004492b0
mov ecx, dword [esi + 0x1b8]
push 0
call fcn.004481b0
test di, di
jne 0x46059f
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x24], 0
call ebx
mov ebp, eax
call ebx
sub eax, ebp
cmp eax, 0x3a98
jae 0x46059f
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi]
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call dword [eax + 0x14]
test ax, ax
jne 0x460594
mov eax, dword [esp + 0x24]
inc eax
cmp ax, 2
mov dword [esp + 0x24], eax
jg 0x46059f
call ebx
sub eax, ebp
cmp eax, 0x3a98
jb 0x460569
mov edx, dword [esi]
mov ecx, esi
mov byte [esp + 0x130], 0
call dword [edx]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x10]
lea ecx, [esp + 0x50]
mov dword [esp + 0x130], 0xffffffff
call fcn.00405f40
mov ecx, dword [esp + 0x128]
mov ax, di
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x124
ret 0x18