Function at 0x455fa0
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b7c18
push eax
mov dword fs:[0], esp
sub esp, 0x5c
push ebx
push ebp
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x79], 1
je 0x456864
mov eax, dword [esp + 0x84]
mov byte [esi + 0x814], 1
mov ecx, dword [eax + 3]
push ecx
mov ecx, esi
call fcn.0044e660
fmul qword [0x4bcfc0]
call fcn.00496fa4
cmp eax, 0xc8
mov dword [esp + 0x1c], eax
jg 0x455fff
mov dword [esp + 0x1c], 0xc8
lea edx, [esp + 0x4c]
push 1
push edx
lea ecx, [esp + 0x88]
call fcn.0045dcd0
mov eax, dword [eax + 0x21]
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00417280
lea ecx, [esp + 0x40]
push ecx
call fcn.00460650
mov ebp, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
sub ebp, ecx
sub ebx, eax
push 8
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x58], ebx
call fcn.004aa6ea
add esp, 0x14
test eax, eax
je 0x456067
mov dword [eax + 4], 0
mov dword [eax], 0x4bcfb4
mov edi, eax
jmp 0x456069
xor edi, edi
mov edx, dword [esp + 0x7c]
push ebp
push ebx
mov dword [esp + 0x18], edi
mov eax, dword [edx + 0x2c]
mov eax, dword [eax + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
mov ecx, edi
call fcn.004ae048
push 8
call fcn.004aa6ea
add esp, 4
test eax, eax
je 0x4560a7
mov dword [eax + 4], 0
mov dword [eax], 0x4bcfb4
mov edi, eax
jmp 0x4560a9
xor edi, edi
mov ecx, dword [esp + 0x7c]
push ebp
push ebx
mov dword [esp + 0x1c], edi
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + 4]
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
mov ecx, edi
call fcn.004ae048
mov ecx, dword [esi + 0x49]
push 0
call fcn.004adb9c
mov ecx, dword [esi + 0x4d]
push 0
call fcn.004adb9c
mov eax, dword [esi + 0x49]
test edi, edi
je 0x4560e6
mov edi, dword [edi + 4]
mov eax, dword [eax + 4]
push edi
push eax
call fcn.004ad796
mov ecx, dword [esp + 0x7c]
mov edi, eax
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esi + 0x49]
test eax, eax
je 0x456103
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x50]
push 0xcc0020
push edx
mov edx, dword [esp + 0x54]
push edx
push eax
mov eax, dword [ecx + 4]
push ebp
push ebx
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esi + 0x49]
test edi, edi
je 0x45612d
mov edi, dword [edi + 4]
mov ecx, dword [eax + 4]
push edi
push ecx
call fcn.004ad796
mov edx, dword [esp + 0x80]
lea eax, [esi + 0x45]
lea edi, [esi + 0x41]
push eax
mov eax, dword [esp + 0x80]
push edi
push edx
push eax
mov ecx, esi
call fcn.0045c5f0
mov ecx, dword [esi + 0x1c]
push ecx
call fcn.0044a420
mov edx, dword [esp + 0x88]
add esp, 4
mov al, byte [edx + 2]
cmp al, 5
jl 0x456178
cmp al, 0xc
jle 0x45672a
cmp al, 0x22
je 0x45672a
cmp al, 0x23
je 0x45672a
cmp al, 0x26
je 0x45672a
cmp al, 0x2d
je 0x45672a
cmp al, 0x39
je 0x45672a
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x49]
test eax, eax
je 0x4561ae
mov eax, dword [eax + 4]
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.004ad796
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x4d]
test ecx, ecx
jne 0x4561cb
xor ecx, ecx
jmp 0x4561d2
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 4]
push ecx
push edx
call fcn.004ad796
mov ecx, dword [esi + 0x4d]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x49]
test eax, eax
je 0x4561ed
mov eax, dword [eax + 4]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [ecx + 4]
push ebp
push ebx
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [edi]
mov ecx, dword [esi + 0x49]
test eax, eax
je 0x456213
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.004ad796
mov eax, dword [esi + 0x49]
mov ecx, dword [esi + 0x4d]
test eax, eax
je 0x45622a
mov eax, dword [eax + 4]
mov edx, dword [ecx + 4]
push 0x8800c6
mov edi, dword [sym.imp.GDI32.dll_BitBlt]
push 0
push 0
push eax
push ebp
push ebx
push 0
push 0
push edx
call edi
mov eax, dword [esi + 0x45]
mov ecx, dword [esi + 0x49]
test eax, eax
je 0x456253
mov eax, dword [eax + 4]
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.004ad796
mov eax, dword [esi + 0x49]
mov ecx, dword [esi + 0x4d]
test eax, eax
je 0x45626a
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 4]
push 0xee0086
push 0
push 0
push eax
push ebp
push ebx
push 0
push 0
push ecx
call edi
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x49]
test ecx, ecx
je 0x45628e
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 4]
push ecx
push edx
call fcn.004ad796
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x4d]
test eax, eax
je 0x4562a6
mov eax, dword [eax + 4]
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.004ad796
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x24], eax
mov al, byte [edi + 2]
cmp al, 0x16
jle 0x456323
cmp al, 0x27
jge 0x456323
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004a7808
mov edx, dword [eax + 0x1c]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x1c]
push edx
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x50]
push eax
push edx
mov edx, dword [esp + 0x5c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 8], ecx
mov cl, byte [edi + 2]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x2c]
push eax
push ecx
call fcn.0041bd90
add esp, 0x24
jmp 0x45680f
sub esp, 0x10
xor eax, eax
mov edx, esp
lea ecx, [esp + 0x44]
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ebp
call fcn.00467aa0
mov ecx, dword [esi + 0x4d]
push eax
mov dword [esp + 0x78], 1
call fcn.004adb9c
mov dword [esp + 0x34], vtable.CGdiObject.0
lea ecx, [esp + 0x34]
mov dword [esp + 0x74], 2
call fcn.004ae09f
mov al, byte [edi + 2]
mov dword [esp + 0x74], 0xffffffff
cmp al, 0x38
jne 0x456393
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4d]
test eax, eax
jne 0x456389
push eax
mov eax, dword [ecx + 4]
push eax
jmp 0x4563a5
mov eax, dword [eax + 4]
push eax
mov eax, dword [ecx + 4]
push eax
jmp 0x4563a5
mov eax, dword [esi + 0x45]
mov ecx, dword [esi + 0x4d]
test eax, eax
je 0x4563a0
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.004ad796
mov dword [esp + 0x18], eax
mov al, byte [edi + 2]
cmp al, 0x2f
jl 0x4565b6
cmp al, 0x38
jg 0x4565b6
cmp al, 0x2f
mov edi, ebx
je 0x456402
cmp al, 0x36
je 0x456402
cmp al, 0x30
je 0x4563fb
cmp al, 0x38
je 0x4563fb
cmp al, 0x31
jne 0x4563e8
cmp ebx, ebp
mov eax, ebx
jg 0x4563df
mov eax, ebp
cdq
sub eax, edx
mov edi, eax
sar edi, 1
jmp 0x456405
cmp al, 0x32
jl 0x456405
cmp al, 0x33
jg 0x456405
mov eax, ebx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
jmp 0x456405
lea edi, [ebx + ebp]
shl edi, 1
jmp 0x456405
lea edi, [ebx + ebx]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x64]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
lea ecx, [esp + 0x54]
call fcn.00467aa0
mov edx, dword [esp + 0x7c]
push eax
mov dword [esp + 0x78], 3
mov ecx, dword [edx + 0x2c]
call fcn.004adb9c
mov dword [esp + 0x44], vtable.CGdiObject.0
lea ecx, [esp + 0x44]
mov dword [esp + 0x74], 4
call fcn.004ae09f
xor ebp, ebp
mov dword [esp + 0x74], 0xffffffff
test edi, edi
mov dword [esp + 0x2c], ebp
jl 0x456561
mov dword [esp + 0x20], ebp
lea eax, [edi - 1]
cmp ebp, eax
jge 0x456498
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, dword [esp + 0x20]
cdq
idiv edi
add eax, dword [esp + 0x24]
cmp ecx, eax
ja 0x456546
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, dword [esp + 0x20]
cdq
idiv edi
add eax, dword [esp + 0x24]
sub eax, ecx
push eax
push 0
call fcn.0044a490
mov edx, dword [esi + 0x4d]
add esp, 8
xor eax, eax
push edx
push edi
push ebp
mov edx, dword [esp + 0x34]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x30]
push eax
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], edx
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x30]
movsx eax, byte [edx + 2]
push ecx
push 2
push eax
call fcn.00421a40
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x78]
mov edx, dword [esi + 0x4d]
sub eax, ecx
mov ecx, dword [esp + 0x80]
sub ecx, ebp
mov ebp, dword [esp + 0xa8]
add esp, 0x2c
mov ebp, dword [ebp + 0x2c]
test edx, edx
je 0x456522
mov edx, dword [edx + 4]
push 0xcc0020
push 0
push 0
push edx
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [ebp + 4]
push ecx
mov ecx, dword [esp + 0x68]
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
inc ebp
add edx, ecx
cmp ebp, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], edx
jle 0x456476
mov al, byte [esi + 0x7f6]
test al, al
je 0x4565a3
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x4d]
test eax, eax
je 0x456579
mov eax, dword [eax + 4]
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.004ad796
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x456592
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x45685d
jmp 0x456856
mov eax, dword [esp + 0x7c]
push 0
mov ecx, dword [eax + 0x2c]
call fcn.004adb9c
jmp 0x4566e6
cmp ebx, ebp
mov ebp, ebx
jg 0x4565c0
mov ebp, dword [esp + 0x28]
xor edi, edi
cmp ebp, edi
mov dword [esp + 0x2c], edi
jle 0x4566e6
mov dword [esp + 0x20], edi
lea eax, [ebp - 1]
cmp edi, eax
jge 0x4565f4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, dword [esp + 0x20]
cdq
idiv ebp
add eax, dword [esp + 0x24]
cmp ecx, eax
ja 0x4566cb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, dword [esp + 0x20]
cdq
idiv ebp
add eax, dword [esp + 0x24]
sub eax, ecx
push eax
push 0
call fcn.0044a490
mov ecx, dword [esi + 0x4d]
add esp, 8
lea eax, [esp + 0x5c]
mov edx, dword [ecx]
push eax
call dword [edx + 0x50]
mov ecx, dword [esi + 0x4d]
xor eax, eax
push ecx
push ebp
push edi
mov ecx, dword [esp + 0x20]
sub esp, 0x10
mov edx, esp
push ecx
mov dword [edx], eax
mov dword [edx + 4], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 8], ebx
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x30]
movsx ecx, byte [eax + 2]
push edx
push 2
push ecx
call fcn.00421a40
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
add ebx, edx
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x78]
add ebx, edi
add esp, 0x2c
mov dword [esp + 0x34], ebx
mov ebx, dword [esi + 0x4d]
sub eax, edx
sub ecx, edi
test ebx, ebx
je 0x45669b
mov ebx, dword [ebx + 4]
push 0xcc0020
push edx
mov edx, dword [esp + 0x38]
push edi
push ebx
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x94]
push edx
push eax
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + 4]
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc edi
add ecx, eax
cmp edi, ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], ecx
jl 0x4565d2
mov al, byte [esi + 0x7f6]
test al, al
jne 0x45685d
mov ecx, dword [esi + 0x4d]
push 0
call fcn.004adb9c
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x4d]
test eax, eax
jne 0x456718
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.004ad796
jmp 0x45680f
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.004ad796
jmp 0x45680f
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x64]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x68]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
lea ecx, [esp + 0x54]
call fcn.00467aa0
mov ebx, dword [esp + 0x7c]
push eax
mov dword [esp + 0x78], 0
mov ecx, dword [ebx + 0x2c]
call fcn.004adb9c
lea ecx, [esp + 0x44]
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x44], vtable.CRgn.0
call fcn.00401bc0
mov edx, dword [esi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004a7808
mov ecx, dword [0x4d6dac]
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0x2c]
push edx
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x60]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x45]
mov dword [edx + 0xc], ecx
mov edx, dword [edi]
mov ecx, dword [esp + 0xa4]
mov edi, dword [esp + 0x34]
push edx
push eax
mov dl, byte [ecx + 2]
push edi
push edx
call fcn.0041d220
mov al, byte [esi + 0x7f6]
add esp, 0x30
test al, al
je 0x456805
test edi, edi
je 0x4567fb
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x45685d
jmp 0x456856
mov ecx, dword [ebx + 0x2c]
push 0
call fcn.004adb9c
mov al, byte [esi + 0x7f6]
test al, al
jne 0x45685d
mov ecx, dword [esi + 0x49]
push 0
call fcn.004adb9c
mov ecx, dword [esi + 0x45]
test ecx, ecx
je 0x456831
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov ecx, dword [esi + 0x41]
test ecx, ecx
je 0x45683f
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x45684e
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x45685d
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov byte [esi + 0x814], 0
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x68
ret 0xc