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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b7bda
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push ebp
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x79], 1
je 0x455f8b
mov ecx, dword [0x4d6890]
xor ebp, ebp
cmp ecx, ebp
je 0x455f8b
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x10], ebp
cmp ebx, ebp
jne 0x4550ab
push 0x14
call fcn.004aa6ea
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov dword [esp + 0x78], ebp
je 0x455097
push esi
mov ecx, eax
call fcn.004adda0
jmp 0x455099
xor eax, eax
mov ecx, dword [0x4d6890]
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xea]
cdq
idiv ecx
cmp ebx, ebp
mov edi, edx
mov dword [esp + 0x28], edi
je 0x4550dd
lea eax, [ecx + ecx*4]
mov ecx, dword [0x4d6878]
lea eax, [ecx + eax*8]
mov ecx, dword [eax - 0x28]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax - 4]
mov ebx, dword [eax - 0x24]
mov dword [esp + 0x18], ecx
jmp 0x4550f9
mov eax, dword [0x4d6878]
lea edx, [edi + edi*4]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x24]
mov ebx, dword [eax + 4]
mov dword [esp + 0x18], ecx
cmp ecx, 0xc8
jg 0x455109
mov dword [esp + 0x18], 0xc8
lea ecx, [esp + 0x50]
push 1
push ecx
lea ecx, [esp + 0x38]
call fcn.0045dcd0
mov edx, dword [eax + 0x21]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00417280
lea eax, [esp + 0x44]
push eax
call fcn.00460650
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
sub eax, ecx
add esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
sub ebp, edx
test eax, eax
je 0x455287
push 8
call fcn.004aa6ea
add esp, 4
test eax, eax
je 0x45517c
mov dword [eax + 4], 0
mov dword [eax], 0x4bcfb4
mov edi, eax
jmp 0x45517e
xor edi, edi
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x14]
push ebp
push edx
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x28], edi
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 0x4551c3
mov dword [eax + 4], 0
mov dword [eax], 0x4bcfb4
mov edi, eax
jmp 0x4551c5
xor edi, edi
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x14]
push ebp
push edx
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x24], edi
mov eax, dword [eax + 4]
push eax
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 0x455209
mov edi, dword [edi + 4]
mov ecx, dword [eax + 4]
push edi
push ecx
call fcn.004ad796
mov edx, dword [esp + 0x80]
mov ecx, dword [esi + 0x49]
mov edi, eax
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x455229
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x54]
push 0xcc0020
push edx
mov edx, dword [esp + 0x58]
mov ecx, dword [ecx + 4]
push edx
push eax
mov eax, dword [esp + 0x24]
push ebp
push eax
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esi + 0x49]
test edi, edi
je 0x455257
mov edi, dword [edi + 4]
mov edx, dword [eax + 4]
push edi
push edx
call fcn.004ad796
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x80]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x34]
push eax
push ecx
push edx
push edi
mov ecx, esi
call fcn.0045c5f0
mov ecx, dword [0x4d6878]
jmp 0x4552b7
mov ecx, dword [0x4d6878]
lea eax, [edi + edi*4]
mov edi, dword [esp + 0x80]
mov edx, dword [ecx + eax*8 + 0xc]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x34], edx
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
cmp ebx, 0x138d
jl 0x4552cf
cmp ebx, 0x1394
jle 0x455dae
cmp ebx, 0x13aa
je 0x455dae
cmp ebx, 0x13ab
je 0x455dae
cmp ebx, 0x13ae
je 0x455dae
cmp ebx, 0x13b1
jl 0x455307
cmp ebx, 0x13b5
jl 0x455dae
cmp ebx, 0x13c1
je 0x455dae
cmp ebx, 0x1388
jl 0x455329
cmp ebx, 0x13b5
je 0x455329
sub ebx, 0x1388
cmp ebx, 5
jl 0x455337
cmp ebx, 0xc
jle 0x455b58
cmp ebx, 0x22
je 0x455b58
cmp ebx, 0x23
je 0x455b58
cmp ebx, 0x26
je 0x455b58
cmp ebx, 0x2d
je 0x455b58
cmp ebx, 0x39
je 0x455b58
test edi, edi
je 0x455646
mov ecx, dword [esi + 0x49]
test edx, edx
jne 0x455377
xor eax, eax
jmp 0x45537a
mov eax, dword [edx + 4]
mov ecx, dword [ecx + 4]
push eax
push ecx
call fcn.004ad796
mov ecx, dword [esp + 0x20]
mov edi, eax
mov eax, dword [esi + 0x4d]
test ecx, ecx
je 0x455394
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 + 0x28], eax
mov eax, dword [esi + 0x49]
test eax, eax
je 0x4553af
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 4]
push 0xcc0020
push 0
push 0
push eax
mov eax, dword [esp + 0x24]
push ebp
push eax
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esi + 0x49]
test edi, edi
je 0x4553d7
mov edi, dword [edi + 4]
mov edx, dword [eax + 4]
push edi
push edx
call fcn.004ad796
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x49]
test eax, eax
je 0x4553ef
mov eax, dword [eax + 4]
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.004ad796
mov ecx, dword [esi + 0x4d]
mov edi, eax
mov eax, dword [esi + 0x49]
test eax, eax
je 0x455408
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x14]
push 0x8800c6
push 0
push 0
push eax
mov eax, dword [ecx + 4]
push ebp
push edx
push 0
push 0
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esi + 0x49]
test edi, edi
je 0x455430
mov edi, dword [edi + 4]
mov ecx, dword [eax + 4]
push edi
push ecx
call fcn.004ad796
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x49]
test eax, eax
je 0x455448
mov eax, dword [eax + 4]
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.004ad796
mov ecx, dword [esi + 0x4d]
mov edi, eax
mov eax, dword [esi + 0x49]
test eax, eax
je 0x455461
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 4]
push 0xee0086
push 0
push 0
push eax
mov eax, dword [esp + 0x24]
push ebp
push eax
push 0
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esi + 0x49]
test edi, edi
je 0x455489
mov edi, dword [edi + 4]
mov edx, dword [eax + 4]
push edi
push edx
call fcn.004ad796
mov eax, dword [esp + 0x28]
mov esi, dword [esi + 0x4d]
test eax, eax
je 0x4554a1
mov eax, dword [eax + 4]
push eax
mov eax, dword [esi + 4]
push eax
call fcn.004ad796
mov eax, dword [0x4d6890]
mov edx, dword [0x4d6878]
mov edi, dword [esp + 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [eax + eax*4]
mov dword [edx + ecx*8 - 0x1c], edi
mov eax, dword [0x4d6890]
mov ecx, dword [0x4d6878]
mov edx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 - 0x18], edx
mov eax, dword [0x4d6890]
mov ecx, dword [0x4d6878]
mov edx, dword [esp + 0x34]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 - 0x14], edx
mov eax, dword [0x4d6890]
mov ecx, dword [0x4d6878]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 - 0x10], edx
call esi
mov ecx, dword [0x4d6890]
mov edx, dword [0x4d6878]
cmp ebx, 0x24
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*8 - 0x20], eax
mov eax, dword [0x4d6890]
mov ecx, dword [0x4d6878]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 - 0xc], 0
je 0x455570
cmp ebx, 0x25
je 0x455570
cmp ebx, 0x20
je 0x45554c
cmp ebx, 0x21
jne 0x455f8b
push ebx
push edi
call fcn.00454ec0
add esp, 8
call esi
mov ecx, dword [0x4d6890]
lea edx, [ecx + ecx*4]
mov ecx, dword [0x4d6878]
mov dword [ecx + edx*8 - 0x20], eax
jmp 0x455f8b
mov eax, dword [edi + 4]
lea edx, [esp + 0x38]
push edx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
cmp ebx, 0x24
jne 0x4555c6
mov edi, dword [esp + 0x3c]
mov eax, 0x66666667
imul edi
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x80], edx
fild dword [esp + 0x80]
fadd qword [0x4bd0b8]
call fcn.00496fa4
mov esi, eax
mov eax, edi
cdq
mov ecx, 0x14
idiv ecx
test edx, edx
je 0x455605
jmp 0x455604
mov edi, dword [esp + 0x40]
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x80], edx
fild dword [esp + 0x80]
fadd qword [0x4bd0b8]
call fcn.00496fa4
mov esi, eax
mov eax, edi
cdq
mov ecx, 0x14
idiv ecx
test edx, edx
je 0x455605
inc esi
lea edx, [esi*4]
push edx
call fcn.004970a0
mov ecx, dword [0x4d6890]
mov edx, dword [0x4d6878]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*8 - 0xc], eax
mov eax, dword [0x4d6890]
mov ecx, dword [0x4d6878]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 - 0xc]
push edx
push esi
call fcn.0041bc30
add esp, 0xc
jmp 0x455f8b
mov ecx, dword [esi + 0xea]
mov edi, dword [esp + 0x28]
inc ecx
lea edi, [edi + edi*4]
mov dword [esi + 0xea], ecx
mov eax, dword [0x4d6878]
shl edi, 3
mov ecx, dword [edi + eax + 8]
mov dword [esp + 0x80], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x18]
sub eax, edx
cmp eax, ecx
jl 0x45579d
mov eax, dword [0x4d6878]
xor ebx, ebx
mov ecx, dword [edi + eax + 0x10]
cmp ecx, ebx
je 0x4556ac
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [0x4d6878]
mov dword [edi + eax + 0x10], ebx
mov eax, dword [0x4d6878]
mov ecx, dword [edi + eax + 0x14]
cmp ecx, ebx
je 0x4556c9
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov eax, dword [0x4d6878]
mov dword [edi + eax + 0x14], ebx
mov eax, dword [0x4d6878]
mov ecx, dword [edi + eax + 0xc]
cmp ecx, ebx
je 0x4556e6
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov eax, dword [0x4d6878]
mov dword [edi + eax + 0xc], ebx
mov eax, dword [0x4d6878]
mov ecx, dword [edi + eax + 0x18]
cmp ecx, ebx
je 0x455703
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov eax, dword [0x4d6878]
mov dword [edi + eax + 0x18], ebx
mov eax, dword [0x4d6878]
mov ecx, dword [edi + eax + 0x1c]
cmp ecx, ebx
je 0x455723
push ecx
call fcn.00496fcb
mov ecx, dword [0x4d6878]
add esp, 4
mov dword [edi + ecx + 0x1c], ebx
mov eax, dword [0x4d6878]
mov ecx, dword [esp + 0x28]
mov edx, dword [0x4d6890]
add edi, eax
lea ecx, [ecx + ecx*4 + 5]
lea edx, [edx + edx*4]
shl ecx, 3
shl edx, 3
sub edx, ecx
add ecx, eax
push edx
push ecx
push edi
call fcn.00497220
mov edx, dword [0x4d6890]
mov eax, dword [esp + 0x3c]
add esp, 0xc
dec edx
mov dword [0x4d6890], edx
mov ecx, dword [eax + 0x21]
mov edx, dword [ecx + 0x1e]
mov eax, dword [edx]
cmp eax, ebx
je 0x45576b
mov byte [eax], 0
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x50]
push ebx
push eax
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esp + 0x10]
cmp ecx, ebx
je 0x455f8b
mov eax, dword [ecx]
push 1
call dword [eax + 4]
jmp 0x455f8b
cmp ebx, 0x16
jle 0x45580e
cmp ebx, 0x27
jge 0x45580e
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004a7808
mov edx, dword [0x4d6878]
mov eax, dword [eax + 0x1c]
mov ecx, dword [edi + edx + 0x1c]
mov edx, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
push eax
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x68]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x80]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x44]
push eax
push ebx
call fcn.00426cb0
add esp, 0x2c
jmp 0x455d93
sub esp, 0x10
mov edi, dword [esp + 0x24]
mov ecx, esp
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebp
lea ecx, [esp + 0x38]
call fcn.00467aa0
mov ecx, dword [esi + 0x4d]
push eax
mov dword [esp + 0x7c], 5
call fcn.004adb9c
mov dword [esp + 0x28], vtable.CGdiObject.0
lea ecx, [esp + 0x28]
mov dword [esp + 0x78], 6
call fcn.004ae09f
mov ecx, dword [esi + 0x4d]
cmp ebx, 0x38
mov dword [esp + 0x78], 0xffffffff
jne 0x455892
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x45587f
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.004ad796
mov dword [esp + 0x28], eax
jmp 0x4558d0
mov eax, dword [eax + 4]
mov edx, dword [ecx + 4]
push eax
push edx
call fcn.004ad796
mov dword [esp + 0x28], eax
jmp 0x4558d0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x45589d
mov eax, dword [eax + 4]
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.004ad796
cmp ebx, 0x2f
mov dword [esp + 0x28], eax
jl 0x4558b5
cmp ebx, 0x38
jle 0x4558c3
cmp ebx, 0x13b5
jne 0x455a2d
jmp 0x4558cb
cmp ebx, 0x13b5
jne 0x4558d0
mov ebx, 0x2d
mov edi, dword [esp + 0x14]
cmp ebx, 0x2f
je 0x455919
cmp ebx, 0x36
je 0x455919
cmp ebx, 0x30
je 0x455913
cmp ebx, 0x38
je 0x455913
cmp ebx, 0x31
jne 0x4558fe
cmp edi, ebp
jg 0x4558f3
mov edi, ebp
mov eax, edi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
jmp 0x45591b
cmp ebx, 0x32
jl 0x45591b
cmp ebx, 0x33
jg 0x45591b
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
jmp 0x45591b
add edi, ebp
shl edi, 1
jmp 0x45591b
add edi, edi
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x68]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x48]
call fcn.00467aa0
mov ecx, dword [esp + 0x10]
push eax
mov dword [esp + 0x7c], 7
call fcn.004adb9c
mov dword [esp + 0x38], vtable.CGdiObject.0
lea ecx, [esp + 0x38]
mov dword [esp + 0x78], 8
call fcn.004ae09f
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], 0xffffffff
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [esi + 0x4d]
push edx
push edi
push eax
mov edx, dword [esp + 0x20]
sub esp, 0x10
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x38]
push eax
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], ebp
mov ecx, dword [esp + 0x40]
push ecx
push 2
push ebx
call fcn.00421a40
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov ebx, dword [esp + 0x7c]
mov edx, dword [esi + 0x4d]
add esp, 0x2c
sub eax, edi
sub ecx, ebx
test edx, edx
je 0x4559e9
mov edx, dword [edx + 4]
push 0xcc0020
push 0
push 0
push edx
push eax
push ecx
push edi
mov edi, dword [esp + 0x2c]
push ebx
mov edx, dword [edi + 4]
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
push 0
mov ecx, edi
call fcn.004adb9c
mov edi, dword [esp + 0x10]
mov al, byte [esi + 0x7f6]
test al, al
je 0x455b22
test edi, edi
je 0x455f8b
jmp 0x455f82
cmp ebx, 0x1388
jge 0x455a0e
cmp edi, ebp
mov edi, dword [esp + 0x14]
jg 0x455a3f
mov edi, ebp
mov eax, dword [esp + 0x18]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea ecx, [edi - 1]
mov dword [esp + 0x80], eax
cmp eax, ecx
jge 0x455a0e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x4d]
push 0
call fcn.004adb9c
mov ecx, dword [esi + 0x4d]
lea eax, [esp + 0x60]
push eax
mov edx, dword [ecx]
call dword [edx + 0x50]
mov ecx, dword [esi + 0x4d]
mov edx, dword [esp + 0x80]
push ecx
push edi
push edx
mov edx, dword [esp + 0x20]
sub esp, 0x10
xor eax, eax
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x38]
push eax
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], ebp
mov ecx, dword [esp + 0x40]
push ecx
push 2
push ebx
call fcn.00421a40
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x7c]
mov edx, dword [esi + 0x4d]
sub eax, ebx
add ebx, edi
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x8c]
sub ecx, ebp
add esp, 0x2c
add ebp, ebx
test edx, edx
je 0x455afc
mov edx, dword [edx + 4]
push 0xcc0020
push edi
mov edi, dword [esp + 0x18]
push ebx
push edx
mov edx, dword [esp + 0x90]
push eax
mov eax, dword [edi + 4]
push ecx
push edx
push ebp
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
jmp 0x455a12
mov ecx, dword [esi + 0x4d]
push 0
call fcn.004adb9c
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x4d]
test eax, eax
jne 0x455b46
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.004ad796
jmp 0x455d97
mov eax, dword [eax + 4]
push eax
mov eax, dword [ecx + 4]
push eax
call fcn.004ad796
jmp 0x455d97
test edi, edi
je 0x455bc7
mov eax, dword [0x4d6890]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 - 0x1c], esi
mov eax, dword [0x4d6890]
lea ecx, [eax + eax*4]
mov eax, dword [0x4d6878]
mov dword [eax + ecx*8 - 0x18], edx
mov eax, dword [0x4d6890]
mov edx, dword [0x4d6878]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x34]
mov dword [edx + ecx*8 - 0x14], eax
mov eax, dword [0x4d6890]
mov edx, dword [0x4d6878]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov dword [edx + ecx*8 - 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x4d6890]
mov edx, dword [0x4d6878]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*8 - 0x20], eax
jmp 0x455f8b
mov ebp, dword [esp + 0x28]
lea ebp, [ebp + ebp*4]
shl ebp, 3
lea edi, [ecx + ebp]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x18]
sub eax, edx
cmp eax, ecx
jle 0x455cb8
mov edi, dword [edi + 0x10]
test edi, edi
je 0x455bfc
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov edx, dword [0x4d6878]
mov ecx, dword [edx + ebp + 0x14]
test ecx, ecx
je 0x455c17
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov edx, dword [0x4d6878]
mov ecx, dword [edx + ebp + 0xc]
test ecx, ecx
je 0x455c2c
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov edx, dword [0x4d6878]
mov ecx, dword [edx + ebp + 0x18]
test ecx, ecx
je 0x455c41
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov edx, dword [0x4d6878]
mov eax, dword [esp + 0x28]
mov ecx, dword [0x4d6890]
add ebp, edx
lea eax, [eax + eax*4 + 5]
lea ecx, [ecx + ecx*4]
shl eax, 3
shl ecx, 3
sub ecx, eax
add eax, edx
push ecx
push eax
push ebp
call fcn.00497220
mov ebp, dword [0x4d6890]
mov edx, dword [esp + 0x3c]
add esp, 0xc
dec ebp
mov dword [0x4d6890], ebp
mov eax, dword [edx + 0x21]
push 0
mov ecx, dword [eax + 0x1e]
lea eax, [esp + 0x54]
push eax
mov edx, dword [ecx]
mov byte [edx], 0
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x455f8b
mov eax, dword [ecx]
push 1
call dword [eax + 4]
jmp 0x455f8b
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x68]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x48]
call fcn.00467aa0
mov edi, dword [esp + 0x10]
push eax
mov ecx, edi
mov dword [esp + 0x7c], 3
call fcn.004adb9c
mov dword [esp + 0x38], vtable.CGdiObject.0
lea ecx, [esp + 0x38]
mov dword [esp + 0x78], 4
call fcn.004ae09f
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x78], 0xffffffff
push ecx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004a7808
mov edx, dword [0x4d6878]
mov eax, dword [eax + 0x1c]
mov ecx, dword [edx + ebp + 8]
mov edx, dword [0x4d6dac]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
mov eax, dword [esp + 0x5c]
push ecx
push edi
mov ecx, dword [esp + 0x68]
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x7c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x80]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
push ebx
call fcn.00427df0
mov ecx, dword [esi + 0xea]
add esp, 0x34
inc ecx
mov dword [esi + 0xea], ecx
push 0
mov ecx, edi
call fcn.004adb9c
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + 0x49]
push 0
call fcn.004adb9c
test edi, edi
je 0x455f8b
jmp 0x455f82
mov ebp, dword [esp + 0x28]
lea ebp, [ebp + ebp*4]
shl ebp, 3
lea edi, [ecx + ebp]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x18]
sub eax, edx
cmp eax, ecx
jle 0x455ea0
mov edi, dword [edi + 0x10]
test edi, edi
je 0x455de3
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov edx, dword [0x4d6878]
mov ecx, dword [edx + ebp + 0x14]
test ecx, ecx
je 0x455dfe
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov edx, dword [0x4d6878]
mov ecx, dword [edx + ebp + 0xc]
test ecx, ecx
je 0x455e13
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov edx, dword [0x4d6878]
mov ecx, dword [edx + ebp + 0x18]
test ecx, ecx
je 0x455e28
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov edx, dword [0x4d6878]
mov eax, dword [esp + 0x28]
mov ecx, dword [0x4d6890]
add ebp, edx
lea eax, [eax + eax*4 + 5]
lea ecx, [ecx + ecx*4]
shl eax, 3
shl ecx, 3
sub ecx, eax
add eax, edx
push ecx
push eax
push ebp
call fcn.00497220
mov edx, dword [0x4d6890]
add esp, 0xc
dec edx
mov dword [0x4d6890], edx
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x21]
mov ecx, dword [eax + 0x1e]
mov eax, dword [ecx]
test eax, eax
je 0x455e70
mov byte [eax], 0
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x50]
push 0
push edx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x455f8b
mov edx, dword [ecx]
push 1
jmp 0x455f88
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + 8], ecx
lea ecx, [esp + 0x48]
mov dword [eax + 0xc], edx
call fcn.00467aa0
mov edi, dword [esp + 0x10]
push eax
mov ecx, edi
mov dword [esp + 0x7c], 1
call fcn.004adb9c
mov dword [esp + 0x38], vtable.CGdiObject.0
lea ecx, [esp + 0x38]
mov dword [esp + 0x78], 2
call fcn.004ae09f
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x78], 0xffffffff
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.004a7808
mov ecx, dword [0x4d6878]
add bl, 0x78
mov edx, dword [ecx + ebp + 8]
mov ecx, dword [0x4d6dac]
push edx
mov edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x1c]
push ecx
push edx
mov edx, dword [esp + 0x5c]
push eax
push edi
mov eax, dword [esp + 0x68]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x7c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x80]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
push ebx
call fcn.00429400
mov edx, dword [esi + 0xea]
add esp, 0x34
inc edx
mov ecx, edi
push 0
mov dword [esi + 0xea], edx
call fcn.004adb9c
test edi, edi
je 0x455f8b
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x6c
ret 4