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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdb0
push esi
push edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x1c], eax
call sub.Vcl40.bpl__Sysutils_Now_qqrv
fstp qword [ebp - 0x24]
wait
mov eax, 0x23b8
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 4], eax
mov eax, 0xbc4
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 8], eax
mov eax, 0x11dc
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 0xd0], eax
mov eax, 0x68f
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 0xdc], eax
mov eax, 0x624
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 0xe0], eax
mov eax, 0x2fa
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 0xd4], eax
mov eax, 0x2fa
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 0xd8], eax
mov eax, dword [0x52db70]
mov eax, dword [eax]
mov esi, eax
lea edi, [ebp - 0x1b8]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x1b8]
xor edx, edx
call fcn.00402dc4
xor eax, eax
mov dword [ebp - 0xfc], eax
mov eax, dword [0x52d5f0]
xor edx, edx
mov dword [eax], edx
mov dword [ebp - 0xc8], 0xffffffff
mov byte [ebp - 0x2d], 0
mov byte [0x52f7f7], 1
cmp byte [ebp + 0x28], 0
jne 0x4a5871
mov byte [ebp - 0x25], 0xff
push ebp
call fcn.004a50e4
pop ecx
cmp byte [ebp + 0x28], 2
je 0x4a5883
mov dword [ebp - 0x100], 0x7fff
jmp 0x4a588d
mov dword [ebp - 0x100], 0xa
cmp dword [ebp + 0x20], 0xa
jl 0x4a589a
mov dword [ebp + 0x20], 0x40
mov eax, dword [0x52db98]
mov al, byte [eax]
test al, al
jbe 0x4a5966
mov byte [ebp - 0x124], al
mov byte [ebp - 0x3d], 1
xor eax, eax
mov al, byte [ebp - 0x3d]
mov edx, dword [0x52d7d8]
mov edx, dword [edx]
mov al, byte [edx + eax]
mov byte [ebp - 0xbf], al
xor eax, eax
mov al, byte [ebp - 0xbf]
lea eax, [eax + eax*8]
mov edx, dword [0x52d738]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
test byte [eax + 7], 0x40
jne 0x4a58fe
xor edx, edx
mov al, byte [ebp - 0xbf]
call fcn.00425020
mov eax, dword [ebp - 0x128]
mov al, byte [eax + 7]
and al, 3
cmp al, 3
jne 0x4a594a
mov eax, dword [ebp - 0x128]
test byte [eax + 7], 0x10
jne 0x4a5924
mov al, byte [ebp - 0xbf]
call fcn.00423c2c
xor edx, edx
mov al, byte [ebp - 0xbf]
call fcn.00414c4c
mov eax, dword [ebp - 0x128]
or byte [eax + 7], 8
mov dl, 1
mov al, byte [ebp - 0xbf]
call fcn.00414c4c
jmp 0x4a5957
mov dl, 1
mov al, byte [ebp - 0xbf]
call fcn.0041b1bc
inc byte [ebp - 0x3d]
dec byte [ebp - 0x124]
jne 0x4a58b3
mov byte [ebp - 0xbf], 0
mov byte [ebp - 0x45], 0
mov byte [ebp - 0x46], 0
call fcn.00402d2c
xor eax, eax
mov dword [ebp - 0xe4], eax
call fcn.004a77a8
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x117], 0
mov eax, dword [0x52d7bc]
cmp byte [eax], 0
je 0x4a5c4b
test byte [ebp + 8], 1
je 0x4a5c4b
mov byte [ebp - 0x45], 0
xor eax, eax
mov al, byte [ebp - 0x45]
lea eax, [eax + eax*2]
mov edx, dword [0x52d7dc]
lea eax, [edx + eax*4]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x12c]
cmp byte [eax], 0
je 0x4a5c3e
mov eax, dword [ebp - 0x12c]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x12c]
mov dl, byte [edx + 2]
sub dl, al
jb 0x4a5c3e
inc edx
mov byte [ebp - 0x124], dl
mov byte [ebp - 0x46], al
xor eax, eax
mov al, byte [ebp - 0x45]
add eax, eax
lea eax, [eax + eax*2]
mov edx, dword [0x52d714]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
je 0x4a5c2f
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
mov esi, eax
lea edi, [ebp - 0x210]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x210]
mov edx, dword [0x52da9c]
mov edx, dword [edx]
add edx, 6
mov cl, 0x20
call sub.Vcl40.bpl__System__SetIntersect_qqrv
lea eax, [ebp - 0x210]
mov edx, 0x4a762c
mov cl, 0x20
call sub.Vcl40.bpl__System__SetEq_qqrv
je 0x4a5c13
mov eax, dword [ebp - 0x130]
mov esi, eax
lea edi, [ebp - 0x230]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x52dbbc]
mov esi, eax
lea edi, [ebp - 0x250]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x250]
mov edx, dword [0x52da9c]
mov edx, dword [edx]
add edx, 6
mov cl, 0x20
call sub.Vcl40.bpl__System__SetSub_qqrv
lea edx, [ebp - 0x250]
lea eax, [ebp - 0x230]
mov cl, 0x20
call sub.Vcl40.bpl__System__SetIntersect_qqrv
lea eax, [ebp - 0x230]
mov edx, 0x4a762c
mov cl, 0x20
call sub.Vcl40.bpl__System__SetEq_qqrv
je 0x4a5c13
mov eax, dword [0x52db98]
mov al, byte [eax]
test al, al
jbe 0x4a5c13
mov byte [ebp - 0x131], al
mov byte [ebp - 0x3d], 1
xor eax, eax
mov al, byte [ebp - 0x3d]
mov edx, dword [0x52d7d8]
mov edx, dword [edx]
mov al, byte [edx + eax]
mov byte [ebp - 0xbf], al
mov eax, dword [ebp - 0x130]
mov dl, byte [ebp - 0xbf]
and edx, 0xff
bt dword [eax], edx
jae 0x4a5c04
xor eax, eax
mov al, byte [ebp - 0xbf]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0x45]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
cmp word [eax + edx*4 + 4], 0
jne 0x4a5c13
mov cl, byte [ebp - 0x46]
mov dl, byte [ebp - 0x45]
mov al, byte [ebp - 0xbf]
call fcn.00429294
mov eax, dword [0x52d7c4]
mov eax, dword [eax]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x138]
add eax, 0x320
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x13c]
cmp word [eax + 4], 5
jl 0x4a5c13
mov byte [ebp - 0x117], 4
xor eax, eax
mov al, byte [ebp - 0xbf]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0x45]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
mov eax, dword [eax + edx*4]
mov edx, dword [0x52d5f0]
mov dword [edx], eax
xor eax, eax
mov al, byte [ebp - 0xbf]
xor edx, edx
mov dl, byte [ebp - 0x117]
shl edx, 8
add eax, edx
mov dword [ebp - 0xfc], eax
jmp 0x4a5c13
inc byte [ebp - 0x3d]
dec byte [ebp - 0x131]
jne 0x4a5b00
mov eax, dword [ebp - 0x130]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
jne 0x4a5a2a
inc byte [ebp - 0x46]
dec byte [ebp - 0x124]
jne 0x4a59fa
inc byte [ebp - 0x45]
cmp byte [ebp - 0x45], 6
jne 0x4a59b0
test byte [ebp + 8], 1
je 0x4a5da8
mov eax, dword [0x52db98]
mov al, byte [eax]
test al, al
jbe 0x4a5da8
mov byte [ebp - 0x124], al
mov byte [ebp - 0x3d], 1
cmp byte [ebp - 0x117], 0
jne 0x4a5d99
xor eax, eax
mov al, byte [ebp - 0x3d]
mov edx, dword [0x52d7d8]
mov edx, dword [edx]
mov al, byte [edx + eax]
mov byte [ebp - 0xbf], al
mov byte [ebp - 0x45], 0
xor eax, eax
mov al, byte [ebp - 0x45]
lea eax, [eax + eax*2]
mov edx, dword [0x52d7dc]
lea eax, [edx + eax*4]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x140]
cmp byte [eax], 0
je 0x4a5d8c
mov eax, dword [ebp - 0x140]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x140]
mov dl, byte [edx + 2]
sub dl, al
jb 0x4a5d8c
inc edx
mov byte [ebp - 0x131], dl
mov byte [ebp - 0x46], al
xor eax, eax
mov al, byte [ebp - 0xbf]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0x45]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
lea eax, [eax + edx*4]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x144]
cmp dword [eax], 0
je 0x4a5d7d
mov word [ebp - 0xe6], 0
push 1
lea ecx, [ebp - 0xe6]
mov eax, dword [ebp - 0x144]
mov edx, dword [eax]
mov al, byte [ebp - 0xbf]
call fcn.00499630
cmp al, 5
jne 0x4a5d7d
mov byte [ebp - 0x117], 5
mov eax, dword [ebp - 0x144]
mov eax, dword [eax]
mov edx, dword [0x52d5f0]
mov dword [edx], eax
xor eax, eax
mov al, byte [ebp - 0xbf]
xor edx, edx
mov dl, byte [ebp - 0x117]
shl edx, 8
add eax, edx
mov dword [ebp - 0xfc], eax
jmp 0x4a5d8c
inc byte [ebp - 0x46]
dec byte [ebp - 0x131]
jne 0x4a5cdf
inc byte [ebp - 0x45]
cmp byte [ebp - 0x45], 6
jne 0x4a5c95
inc byte [ebp - 0x3d]
dec byte [ebp - 0x124]
jne 0x4a5c6e
mov cl, 1
xor edx, edx
mov al, 1
call fcn.0049ec94
cmp byte [ebp - 0x117], 0
jne 0x4a6046
mov eax, dword [0x52db98]
mov al, byte [eax]
test al, al
jbe 0x4a6046
mov byte [ebp - 0x124], al
mov byte [ebp - 0x3d], 1
xor eax, eax
mov al, byte [ebp - 0x3d]
mov edx, dword [0x52d7d8]
mov edx, dword [edx]
mov al, byte [edx + eax]
mov byte [ebp - 0xbf], al
xor eax, eax
mov al, byte [ebp - 0xbf]
lea eax, [eax + eax*8]
mov edx, dword [0x52d738]
mov edx, dword [edx]
test byte [edx + eax*8 + 7], 2
je 0x4a5f17
mov byte [ebp - 0x45], 0
xor eax, eax
mov al, byte [ebp - 0x45]
lea eax, [eax + eax*2]
mov edx, dword [0x52d7dc]
lea eax, [edx + eax*4]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x148]
cmp byte [eax], 0
je 0x4a5f0a
mov eax, dword [ebp - 0x148]
mov al, byte [eax + 1]
mov edx, dword [ebp - 0x148]
mov dl, byte [edx + 2]
sub dl, al
jb 0x4a5f0a
inc edx
mov byte [ebp - 0x131], dl
mov byte [ebp - 0x46], al
mov eax, dword [ebp - 0x148]
mov dl, byte [ebp - 0x46]
cmp dl, 0xf
ja 0x4a5e70
and edx, 0x7f
bt dword [eax + 5], edx
jae 0x4a5efb
xor eax, eax
mov al, byte [ebp - 0xbf]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0x45]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
cmp word [eax + edx*4 + 4], 0
jg 0x4a5efb
mov cl, byte [ebp - 0x46]
mov dl, byte [ebp - 0x45]
mov al, byte [ebp - 0xbf]
call fcn.00429294
mov eax, dword [0x52d7c4]
mov eax, dword [eax]
cmp word [eax + 0x324], 0
jne 0x4a5efb
mov cl, byte [ebp - 0x46]
mov dl, byte [ebp - 0x45]
mov al, byte [ebp - 0xbf]
call fcn.00497b00
mov al, byte [ebp - 0x46]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 0xfffffffffffffffe
mov cl, byte [ebp - 0x45]
mov dl, byte [ebp - 0xbf]
mov ax, 2
call fcn.0041bc00
inc byte [ebp - 0x46]
dec byte [ebp - 0x131]
jne 0x4a5e5b
inc byte [ebp - 0x45]
cmp byte [ebp - 0x45], 6
jne 0x4a5e11
inc byte [ebp - 0x3d]
dec byte [ebp - 0x124]
jne 0x4a5dd9
jmp 0x4a6046
test byte [ebp + 8], 1
je 0x4a5f53
cmp byte [ebp - 0xbf], 0x82
ja 0x4a5f53
push ebp
lea ecx, [ebp - 0x46]
lea edx, [ebp - 0x45]
lea eax, [ebp - 0xbf]
call fcn.004a5174
pop ecx
mov byte [ebp - 0x117], al
cmp byte [ebp - 0x117], 0
jne 0x4a5fb7
mov cl, byte [ebp - 0x46]
mov dl, byte [ebp - 0x45]
mov al, byte [ebp - 0xbf]
call fcn.00429294
lea eax, [ebp - 0x46]
push eax
push 0xffffffffffffffff
mov eax, dword [0x52d7c4]
mov eax, dword [eax]
mov cl, byte [ebp - 0x45]
mov dl, byte [ebp - 0x45]
call fcn.00428a68
mov cl, byte [ebp - 0x46]
mov dl, byte [ebp - 0x45]
mov al, byte [ebp - 0xbf]
call fcn.00497b00
mov al, byte [ebp - 0x46]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 0xfffffffffffffffe
mov cl, byte [ebp - 0x45]
mov dl, byte [ebp - 0xbf]
mov ax, 2
call fcn.0041bc00
jmp 0x4a6046
xor eax, eax
mov al, byte [ebp - 0xbf]
mov edx, dword [0x52d438]
movzx eax, byte [edx + eax]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0x45]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
mov eax, dword [eax + edx*4]
mov edx, dword [0x52d5f0]
mov dword [edx], eax
xor eax, eax
mov al, byte [ebp - 0xbf]
mov edx, dword [0x52d438]
movzx eax, byte [edx + eax]
xor edx, edx
mov dl, byte [ebp - 0x117]
shl edx, 8
add eax, edx
mov dword [ebp - 0xfc], eax
mov eax, dword [0x52d34c]
cmp dword [eax], 0
jle 0x4a603a
push ebp
call fcn.004a0220
pop ecx
mov eax, dword [0x52d34c]
cmp dword [eax], 0
jg 0x4a6029
call fcn.0041c644
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [eax], edx
cmp byte [ebp - 0x117], 0
jne 0x4a6086
push 0
lea eax, [ebp - 0x1b8]
push eax
mov eax, dword [0x52dbbc]
push eax
test byte [ebp + 8], 1
setne al
shl eax, 3
or al, 2
or al, 0x10
push eax
lea ecx, [ebp - 0x46]
lea edx, [ebp - 0x45]
lea eax, [ebp - 0xbf]
call fcn.0049dfd0
test al, al
jne 0x4a5f2b
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
jne 0x4a609d
cmp byte [ebp + 0x1c], 0
jbe 0x4a609d
cmp byte [ebp - 0x117], 0
je 0x4a60a1
xor eax, eax
jmp 0x4a60a3
mov al, 1
mov byte [ebp - 0x2e], al
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
jne 0x4a60b4
cmp byte [ebp + 0x1c], 0
je 0x4a60c1
cmp byte [ebp - 0x117], 0
jne 0x4a60c1
xor eax, eax
jmp 0x4a60c3
mov al, 1
mov edx, dword [0x52d338]
mov byte [edx], al
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a755b
mov eax, dword [0x52d834]
mov dword [eax], 0x20
cmp byte [ebp - 0x2e], 0
je 0x4a6231
mov al, byte [ebp + 0x1c]
dec al
je 0x4a60fd
dec al
je 0x4a611e
dec al
jne 0x4a6125
test byte [ebp + 8], 2
je 0x4a610c
mov byte [ebp - 0xbb], 0
jmp 0x4a6125
cmp byte [ebp + 0x1c], 3
sete al
add eax, eax
inc eax
mov byte [ebp - 0xbb], al
jmp 0x4a6125
mov byte [ebp - 0xbb], 2
cmp byte [ebp + 0x1c], 2
je 0x4a612f
mov byte [ebp + 0xc], 0xff
cmp byte [ebp + 0x28], 1
ja 0x4a61f5
mov eax, dword [0x52d424]
mov eax, dword [eax]
mov edx, dword [ebp - 0xd0]
lea esi, [eax + 0x11dc]
mov edi, edx
mov ecx, 0x477
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x52d3a0]
push eax
mov eax, dword [0x52d408]
push eax
mov eax, dword [0x52db24]
push eax
mov eax, dword [0x52db38]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov al, byte [ebp - 0xbb]
push eax
mov ecx, dword [0x52d4d4]
mov edx, dword [0x52d570]
mov eax, dword [0x52d374]
call fcn.004a79fc
cmp word [ebp + 0x18], 0
je 0x4a61f5
movzx eax, word [ebp + 0x18]
mov edx, dword [0x52d85c]
mov edx, dword [edx]
movzx eax, byte [edx + eax]
mov edx, dword [0x52db0c]
mov dword [edx], eax
movzx eax, word [ebp + 0x18]
mov edx, dword [0x52da00]
mov edx, dword [edx]
movzx eax, byte [edx + eax]
mov edx, dword [0x52d440]
mov dword [edx], eax
movzx eax, word [ebp + 0x18]
mov edx, dword [0x52d91c]
mov edx, dword [edx]
movzx eax, byte [edx + eax]
mov edx, dword [0x52dbf4]
mov dword [edx], eax
movzx eax, word [ebp + 0x18]
mov edx, dword [0x52d728]
mov edx, dword [edx]
movzx eax, byte [edx + eax]
mov edx, dword [0x52d9bc]
mov dword [edx], eax
mov al, byte [ebp + 0x1c]
dec al
je 0x4a6206
dec al
je 0x4a6219
dec al
je 0x4a6222
jmp 0x4a626c
mov eax, dword [0x52da64]
movzx eax, word [eax]
lea eax, [eax + eax*2]
shr eax, 2
mov dword [ebp - 0x3c], eax
jmp 0x4a626c
mov dword [ebp - 0x3c], 0x8ca0
jmp 0x4a626c
mov eax, dword [0x52da64]
movzx eax, word [eax]
add eax, eax
mov dword [ebp - 0x3c], eax
jmp 0x4a626c
cmp byte [ebp + 0x28], 0
mov al, byte [ebp + 0x28]
sub al, 1
jb 0x4a6248
je 0x4a6251
sub al, 2
je 0x4a625e
dec al
je 0x4a6251
jmp 0x4a626c
mov dword [ebp - 0x3c], 0x8ca0
jmp 0x4a626c
mov eax, dword [0x52da64]
movzx eax, word [eax]
mov dword [ebp - 0x3c], eax
jmp 0x4a626c
mov eax, dword [0x52da64]
movzx eax, word [eax]
shl eax, 2
mov dword [ebp - 0x3c], eax
push ebp
call fcn.004a0574
pop ecx
mov byte [ebp - 0x15], 0
mov byte [ebp - 0x107], 0
mov byte [ebp - 0xb9], 1
cmp byte [ebp - 0x2e], 0
je 0x4a6299
mov eax, dword [ebp - 0x14]
xor edx, edx
mov dword [eax], edx
push ebp
call fcn.004a4574
pop ecx
cmp byte [ebp - 0x2e], 0
je 0x4a62a7
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
je 0x4a62ab
xor eax, eax
jmp 0x4a62ad
mov al, 1
mov edx, dword [0x52d338]
mov byte [edx], al
jmp 0x4a74b2
cmp byte [ebp - 0x2e], 0
je 0x4a62c6
cmp byte [ebp + 0x1c], 2
jne 0x4a62ce
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2c], eax
jmp 0x4a62d3
xor eax, eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x25], 0xff
mov byte [ebp - 0x2d], 0
mov byte [ebp - 0x27], 1
call sub.kernel32.dll_GetTickCount
shr eax, 0xa
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x26], 0
mov eax, dword [0x52d34c]
mov eax, dword [eax]
mov dword [ebp - 0x110], eax
mov eax, dword [0x52d990]
xor edx, edx
mov dword [eax], edx
call fcn.0049785c
push ebp
call fcn.004a550c
pop ecx
cmp byte [ebp + 0x28], 0
jne 0x4a6342
cmp byte [ebp - 0x2e], 0
je 0x4a6322
cmp byte [ebp + 0x1c], 2
jne 0x4a6342
push ebp
call fcn.004a50e4
pop ecx
mov eax, dword [0x52d6f4]
cmp dword [eax], 0
je 0x4a6342
mov eax, dword [0x52d6f4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x2c]
call fcn.0047d83c
cmp byte [ebp - 0x25], 0
jle 0x4a6367
mov eax, dword [0x52d34c]
mov eax, dword [eax]
mov dword [ebp - 0x114], eax
push ebp
call fcn.004a4924
pop ecx
cmp byte [ebp + 0xc], 1
jne 0x4a6367
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x2c]
inc eax
cmp eax, 0xa
ja case.default.0x4a6374
jmp dword [eax*4 + 0x4a637b]
mov eax, dword [0x52d834]
xor edx, edx
mov dword [eax], edx
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 1
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 2
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 3
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 4
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 6
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 8
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 0xa
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 0x10
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 0x18
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 0x20
jmp 0x4a6445
mov eax, dword [0x52d834]
mov dword [eax], 0x40
mov eax, dword [0x52d6d0]
xor edx, edx
mov dword [eax], edx
lea eax, [ebp - 0x87]
call fcn.00402e4c
mov esi, 0x4a762c
lea edi, [ebp - 0xa7]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
push ebp
push 0
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004a39dc
pop ecx
cmp byte [ebp + 0x28], 1
jne 0x4a6486
cmp byte [ebp - 0x25], 0
jl 0x4a648b
inc dword [ebp - 0x2c]
jmp 0x4a64c8
mov eax, dword [ebp - 0x2c]
sub eax, 0xffffffff
je 0x4a64a3
dec eax
je 0x4a64aa
dec eax
sub eax, 3
jb 0x4a64b3
sub eax, 2
jb 0x4a64bc
jmp 0x4a64c5
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x4a64c8
mov dword [ebp - 0x2c], 1
jmp 0x4a64c8
mov dword [ebp - 0x2c], 4
jmp 0x4a64c8
mov dword [ebp - 0x2c], 6
jmp 0x4a64c8
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xa
jne 0x4a64d5
mov dword [ebp - 0x2c], 0x3f
cmp byte [ebp - 0xb9], 0
jne 0x4a650c
cmp byte [ebp - 0x2e], 0
je 0x4a64ea
cmp byte [ebp + 0x1c], 2
jne 0x4a650c
cmp byte [ebp + 0xc], 0
jl 0x4a650c
cmp byte [ebp - 0x25], 0
jge 0x4a650c
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0x20]
jl 0x4a650c
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a650c
mov byte [ebp - 0x25], 0
cmp byte [ebp - 0x25], 0
jle 0x4a701f
push ebp
call fcn.004a4dd8
pop ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x115], 0
mov dword [ebp - 0x104], 0xffffffff
mov byte [ebp - 0xbf], 1
mov byte [ebp - 0x45], 0
mov byte [ebp - 0x46], 0
cmp byte [ebp - 0xb9], 0
je 0x4a6f73
push 0
lea eax, [ebp - 0x87]
push eax
lea eax, [ebp - 0xa7]
push eax
push 2
lea ecx, [ebp - 0x46]
lea edx, [ebp - 0x45]
lea eax, [ebp - 0xbf]
call fcn.0049dfd0
mov byte [ebp - 0x116], al
cmp byte [ebp - 0x116], 0
je 0x4a6f66
mov eax, 0x32
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x14c], eax
inc dword [ebp - 0x104]
mov eax, dword [0x52dbf0]
inc dword [eax]
mov eax, dword [0x52dbf0]
mov ax, word [eax]
mov edx, dword [ebp - 0x14c]
mov word [edx], ax
mov eax, dword [0x52d87c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14c]
mov dword [edx + 9], eax
mov eax, dword [0x52d87c]
mov edx, dword [ebp - 0xcc]
mov dword [eax], edx
mov al, byte [ebp - 0x116]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 2], al
xor eax, eax
mov al, byte [ebp - 0x116]
cmp eax, 0x1e
jg 0x4a660e
je 0x4a6717
sub eax, 0xb
je 0x4a6655
sub eax, 9
je 0x4a6620
jmp 0x4a6742
sub eax, 0x28
je 0x4a6722
sub eax, 0x1e
jne 0x4a6742
mov eax, dword [0x52d444]
movzx eax, byte [eax]
mov edx, dword [ebp - 0x14c]
mov word [edx + 5], ax
mov eax, dword [0x52d444]
movzx eax, byte [eax]
mov edx, dword [0x52d65c]
mov edx, dword [edx]
movzx eax, byte [edx + eax]
mov edx, dword [ebp - 0x14c]
mov word [edx + 7], ax
jmp 0x4a6780
mov eax, dword [0x52dac0]
movzx eax, byte [eax]
imul eax, eax, 0x33
mov edx, dword [0x52dbe0]
mov edx, dword [edx]
lea eax, [edx + eax*2]
mov edx, dword [0x52d724]
movzx edx, word [edx]
movzx eax, word [eax + edx*2]
mov edx, dword [0x52dac0]
movzx edx, byte [edx]
mov ecx, dword [0x52d9ec]
mov ecx, dword [ecx]
mov edx, dword [ecx + edx*4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x150]
cmp word [eax + 8], 0
jne 0x4a66bc
mov eax, dword [ebp - 0x14c]
mov word [eax + 5], 0
mov eax, dword [ebp - 0x14c]
mov word [eax + 7], 0
jmp 0x4a66f0
mov eax, dword [ebp - 0x150]
movzx eax, word [eax + 8]
mov edx, dword [0x52da7c]
mov edx, dword [edx]
mov ax, word [edx + eax*2]
mov edx, dword [ebp - 0x14c]
mov word [edx + 5], ax
mov eax, dword [ebp - 0x150]
mov ax, word [eax + 8]
mov edx, dword [ebp - 0x14c]
mov word [edx + 7], ax
xor eax, eax
mov al, byte [ebp - 0xbf]
mov edx, dword [0x52d438]
mov al, byte [edx + eax]
mov edx, dword [0x52dac0]
cmp al, byte [edx]
je 0x4a6780
mov eax, 0x184c
call fcn.004035b0
jmp 0x4a6780
mov word [ebp - 0xe6], 0
jmp 0x4a6780
mov eax, dword [0x52db14]
movzx eax, byte [eax]
mov edx, dword [ebp - 0x14c]
mov word [edx + 7], ax
mov eax, dword [ebp - 0x14c]
mov word [eax + 5], 0
jmp 0x4a6780
mov eax, dword [0x52d4dc]
mov ax, word [eax]
mov edx, dword [ebp - 0x14c]
mov word [edx + 5], ax
mov eax, dword [0x52d4dc]
movzx eax, word [eax]
mov edx, dword [0x52da80]
mov edx, dword [edx]
mov ax, word [edx + eax*2]
mov word [ebp - 0xe6], ax
mov ax, word [ebp - 0xe6]
mov edx, dword [ebp - 0x14c]
mov word [edx + 7], ax
mov al, byte [ebp - 0x45]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xd], al
mov al, byte [ebp - 0x46]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xe], al
xor eax, eax
mov al, byte [ebp - 0xbf]
mov edx, dword [0x52d438]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 4], al
mov al, byte [ebp + 0xc]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 3], al
xor eax, eax
mov al, byte [ebp - 0x116]
cmp eax, 0xc
jg 0x4a67f2
je 0x4a6b1a
dec eax
je 0x4a681b
sub eax, 7
je 0x4a6a9a
dec eax
je 0x4a6ada
sub eax, 2
je 0x4a6bf6
jmp 0x4a6f54
sub eax, 0xd
je 0x4a6b87
sub eax, 0x11
je 0x4a688e
sub eax, 0xa
je 0x4a68c3
sub eax, 0x1e
je 0x4a697b
jmp 0x4a6f54
movzx eax, word [ebp - 0xe6]
lea eax, [eax + eax*2]
mov edx, dword [0x52d424]
mov edx, dword [edx]
lea eax, [edx + eax*4]
xor edx, edx
mov dl, byte [ebp - 0x45]
mov cl, byte [ebp - 0x46]
cmp cl, 0xf
ja 0x4a6848
and ecx, 0x7f
btr dword [eax + edx*2 + 0x11dc], ecx
movzx eax, word [ebp - 0xe6]
lea eax, [eax + eax*2]
mov edx, dword [0x52d424]
mov edx, dword [edx]
lea eax, [edx + eax*4]
xor edx, edx
mov dl, byte [ebp - 0x45]
mov cl, byte [ebp - 0x46]
cmp cl, 0xf
ja 0x4a6871
and ecx, 0x7f
bts dword [eax + edx*2], ecx
mov ax, word [ebp - 0xe6]
call fcn.0041b7dc
mov ax, word [ebp - 0xe6]
call fcn.0041b928
jmp 0x4a6f66
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax + 4]
lea eax, [eax + eax*2]
mov edx, dword [0x52d938]
mov edx, dword [edx]
lea eax, [edx + eax*4]
xor edx, edx
mov dl, byte [ebp - 0x45]
mov cl, byte [ebp - 0x46]
cmp cl, 0xf
ja 0x4a6f66
and ecx, 0x7f
btr dword [eax + edx*2], ecx
jmp 0x4a6f66
xor eax, eax
mov al, byte [ebp - 0xbf]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0x45]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x14c]
mov dword [edx + 0xf], eax
jmp 0x4a6913
mov eax, dword [ebp - 0x14c]
mov eax, dword [eax + 0xf]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14c]
mov dword [edx + 0xf], eax
mov eax, dword [ebp - 0x14c]
cmp dword [eax + 0xf], 0
je 0x4a693a
mov eax, dword [ebp - 0x14c]
mov eax, dword [eax + 0xf]
movsx eax, byte [eax + 0xf]
mov edx, dword [ebp - 0x14c]
movzx edx, word [edx + 7]
cmp eax, edx
jne 0x4a68ff
mov eax, dword [ebp - 0x14c]
mov eax, dword [eax + 0xf]
mov ax, word [eax + 4]
mov edx, dword [ebp - 0x14c]
mov word [edx + 0xd], ax
mov eax, dword [ebp - 0x14c]
mov eax, dword [eax + 0xf]
mov al, byte [eax + 0xf]
mov edx, dword [ebp - 0x14c]
mov edx, dword [edx + 0xf]
mov byte [edx + 0x10], al
mov eax, dword [ebp - 0x14c]
mov eax, dword [eax + 0xf]
mov byte [eax + 0xf], 0
jmp 0x4a6f66
cmp byte [ebp + 0xc], 0
jle 0x4a6f66
mov eax, dword [0x52d868]
mov eax, dword [eax]
mov dword [ebp - 0x11c], eax
mov byte [ebp - 0x108], 0
jmp 0x4a69f9
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x154], eax
mov eax, dword [0x52d444]
movzx eax, byte [eax]
mov edx, dword [0x52d65c]
mov edx, dword [edx]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x154]
cmp al, byte [edx]
jne 0x4a69ea
xor eax, eax
mov al, byte [ebp - 0x45]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x46]
add eax, edx
mov edx, dword [ebp - 0x154]
movzx edx, word [edx + 2]
cmp eax, edx
jne 0x4a69ea
mov byte [ebp - 0x108], 1
jmp 0x4a69f9
mov eax, dword [ebp - 0x154]
mov eax, dword [eax + 8]
mov dword [ebp - 0x11c], eax
cmp byte [ebp - 0x108], 0
jne 0x4a6a0b
cmp dword [ebp - 0x11c], 0
jne 0x4a699b
cmp byte [ebp - 0x108], 0
jne 0x4a6a8c
mov eax, 0xc
call sub.Vcl40.bpl__System__GetMem_qqrv
mov dword [ebp - 0x11c], eax
mov eax, dword [0x52d868]
mov eax, dword [eax]
mov edx, dword [ebp - 0x11c]
mov dword [edx + 8], eax
mov eax, dword [0x52d868]
mov edx, dword [ebp - 0x11c]
mov dword [eax], edx
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x158], eax
mov eax, dword [0x52d444]
movzx eax, byte [eax]
mov edx, dword [0x52d65c]
mov edx, dword [edx]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x158]
mov byte [edx], al
xor eax, eax
mov al, byte [ebp - 0x45]
shl eax, 8
xor edx, edx
mov dl, byte [ebp - 0x46]
add ax, dx
mov edx, dword [ebp - 0x158]
mov word [edx + 2], ax
mov eax, dword [ebp - 0x158]
mov byte [eax + 4], 0
mov eax, dword [ebp - 0x11c]
inc byte [eax + 4]
jmp 0x4a6f66
movzx eax, word [ebp - 0xe6]
mov edx, eax
shl eax, 5
sub eax, edx
mov edx, dword [0x52da94]
mov edx, dword [edx]
lea eax, [edx + eax]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x15c]
mov al, byte [eax + 0x1d]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xd], al
mov eax, dword [ebp - 0x15c]
mov byte [eax + 0x1d], 0xc
jmp 0x4a6f66
movzx eax, word [ebp - 0xe6]
mov edx, eax
shl eax, 5
sub eax, edx
mov edx, dword [0x52da94]
mov edx, dword [edx]
lea eax, [edx + eax]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x160]
mov al, byte [eax + 0x1e]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xe], al
mov eax, dword [ebp - 0x160]
mov byte [eax + 0x1e], 9
jmp 0x4a6f66
movzx eax, word [ebp - 0xe6]
mov edx, eax
shl eax, 5
sub eax, edx
mov edx, dword [0x52da94]
mov edx, dword [edx]
lea eax, [edx + eax]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x164]
mov al, byte [eax + 0x1b]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xd], al
movzx eax, word [ebp - 0xe6]
lea eax, [eax + eax*2]
mov edx, dword [0x52d394]
mov edx, dword [edx]
lea eax, [edx + eax*4]
call fcn.00404330
and al, 0xff
mov edx, dword [ebp - 0x164]
mov byte [edx + 0x1b], al
mov eax, dword [ebp - 0x164]
mov al, byte [eax + 0x1b]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xe], al
jmp 0x4a6f66
movzx eax, word [ebp - 0xe6]
mov edx, eax
shl eax, 5
sub eax, edx
mov edx, dword [0x52da94]
mov edx, dword [edx]
lea eax, [edx + eax]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x168]
mov al, byte [eax + 0x1c]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xd], al
movzx eax, word [ebp - 0xe6]
lea eax, [eax + eax*2]
mov edx, dword [0x52d394]
mov edx, dword [edx]
lea eax, [edx + eax*4]
call fcn.00404330
shr ax, 8
mov edx, dword [ebp - 0x168]
mov byte [edx + 0x1c], al
mov eax, dword [ebp - 0x168]
mov al, byte [eax + 0x1c]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0xe], al
jmp 0x4a6f66
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax + 4]
imul eax, eax, 0x33
mov edx, dword [0x52dbe0]
mov edx, dword [edx]
lea eax, [edx + eax*2]
mov edx, dword [0x52d724]
movzx edx, word [edx]
mov ax, word [eax + edx*2]
mov edx, dword [ebp - 0x14c]
mov word [edx + 0xd], ax
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax + 4]
mov edx, dword [0x52d9ec]
mov edx, dword [edx]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x14c]
movzx edx, word [edx + 0xd]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x14c]
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0xf], ecx
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x13], ecx
mov ecx, dword [eax + 0x34]
mov dword [edx + 0x17], ecx
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax + 4]
mov edx, dword [0x52d9ec]
mov edx, dword [edx]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x14c]
movzx edx, word [edx + 0xd]
mov eax, dword [eax + edx*4]
mov ax, word [eax + 0x2a]
mov edx, dword [ebp - 0x14c]
mov word [edx + 0x1b], ax
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax + 4]
lea eax, [eax + eax*8]
mov edx, dword [0x52d738]
mov edx, dword [edx]
lea eax, [edx + eax*8]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x16c]
add eax, 8
call fcn.00402ff0
mov eax, dword [ebp - 0x16c]
add eax, 8
mov edx, dword [ebp - 0x14c]
mov dx, word [edx + 0xd]
call fcn.00402f68
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax + 4]
mov edx, dword [0x52d9ec]
mov edx, dword [edx]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x14c]
movzx edx, word [edx + 0xd]
mov eax, dword [eax + edx*4]
add eax, 0xe
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x170]
mov esi, eax
lea edi, [ebp - 0x1f0]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x105], 0
xor eax, eax
mov al, byte [ebp - 0x105]
mov edx, dword [ebp - 0x170]
mov ax, word [edx + eax*2 + 0xc]
xor edx, edx
mov dl, byte [ebp - 0x105]
mov ecx, dword [ebp - 0x170]
or ax, word [ecx + edx*2]
xor edx, edx
mov dl, byte [ebp - 0x105]
mov ecx, dword [ebp - 0x170]
mov word [ecx + edx*2], ax
inc byte [ebp - 0x105]
cmp byte [ebp - 0x105], 6
jne 0x4a6d1a
mov dl, 1
mov eax, dword [ebp - 0x14c]
mov al, byte [eax + 4]
call fcn.00425020
mov eax, dword [ebp - 0x170]
mov edi, eax
lea esi, [ebp - 0x1f0]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x170]
mov eax, dword [eax + 0x1e]
mov edx, dword [ebp - 0x14c]
cmp eax, dword [edx + 0xf]
jne 0x4a6db1
mov eax, dword [ebp - 0x170]
mov eax, dword [eax + 0x22]
mov edx, dword [ebp - 0x14c]
cmp eax, dword [edx + 0x13]
je 0x4a6e3d
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x14c]
mov dl, byte [edx + 0x17]
mov byte [eax + 0x26], dl
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x14c]
mov dl, byte [edx + 0x18]
mov byte [eax + 0x27], dl
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x14c]
mov dl, byte [edx + 0x19]
mov byte [eax + 0x28], dl
mov eax, dword [ebp - 0x170]
mov eax, dword [eax + 0x1e]
mov edx, dword [ebp - 0x14c]
cmp eax, dword [edx + 0xf]
je 0x4a6e1c
mov eax, dword [ebp - 0x14c]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0x170]
mov eax, dword [eax + 0x1e]
mov edx, dword [ebp - 0x14c]
mov dword [edx + 0x1e], eax
jmp 0x4a6f66
mov eax, dword [ebp - 0x14c]
mov byte [eax + 0x1d], 1
mov eax, dword [ebp - 0x170]
mov eax, dword [eax + 0x22]
mov edx, dword [ebp - 0x14c]
mov dword [edx + 0x22], eax
jmp 0x4a6f66
mov eax, dword [ebp - 0x170]
mov al, byte [eax + 0x26]
mov edx, dword [ebp - 0x14c]
cmp al, byte [edx + 0x17]
je 0x4a6e84
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x14c]
mov dl, byte [edx + 0x18]
mov byte [eax + 0x27], dl
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x14c]
mov dl, byte [edx + 0x19]
mov byte [eax + 0x28], dl
mov eax, dword [ebp - 0x14c]
mov byte [eax + 0x1d], 2
jmp 0x4a6f66
mov eax, dword [ebp - 0x170]
mov al, byte [eax + 0x27]
mov edx, dword [ebp - 0x14c]
cmp al, byte [edx + 0x18]
je 0x4a6ecb
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x14c]
mov dl, byte [edx + 0x19]
mov byte [eax + 0x28], dl
mov eax, dword [ebp - 0x14c]
mov byte [eax + 0x1d], 3
mov eax, dword [ebp - 0x170]
mov al, byte [eax + 0x27]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0x2e], al
jmp 0x4a6f66
mov eax, dword [ebp - 0x170]
mov al, byte [eax + 0x28]
mov edx, dword [ebp - 0x14c]
cmp al, byte [edx + 0x19]
je 0x4a6efd
mov eax, dword [ebp - 0x170]
mov al, byte [eax + 0x28]
mov edx, dword [ebp - 0x14c]
mov byte [edx + 0x30], al
mov eax, dword [ebp - 0x14c]
mov byte [eax + 0x1d], 5
jmp 0x4a6f66
mov eax, dword [ebp - 0x14c]
mov byte [eax + 0x1d], 4
mov eax, dword [ebp - 0x170]
cmp word [eax + 0x1c], 0
jne 0x4a6f1e
mov eax, 0x113b
call fcn.004035b0
mov eax, dword [ebp - 0x170]
mov word [eax + 0x1c], 0
mov eax, dword [ebp - 0x14c]
movzx eax, byte [eax + 4]
mov edx, dword [0x52d9ec]
mov edx, dword [edx]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x14c]
movzx edx, word [edx + 0x1b]
mov eax, dword [eax + edx*4]
mov word [eax + 0x2a], 0
jmp 0x4a6f66
xor eax, eax
mov al, byte [ebp - 0x116]
add eax, 0x1130
call fcn.004035b0
cmp byte [ebp - 0x116], 0
jne 0x4a6550
cmp byte [ebp + 0xc], 0
jne 0x4a701f
cmp byte [ebp - 0xb9], 0
je 0x4a6f8f
cmp dword [ebp - 0x104], 0
jge 0x4a6f99
cmp byte [ebp - 0x25], 2
jne 0x4a701f
mov eax, dword [0x52d338]
mov byte [eax], 0
mov byte [ebp - 0x26], 0
mov eax, dword [0x52d87c]
cmp dword [eax], 0
je 0x4a701f
mov eax, dword [0x52d87c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x104]
call fcn.004991a8
mov byte [ebp - 0x115], al
mov eax, dword [0x52d87c]
call fcn.004990c0
cmp byte [ebp - 0x115], 0
jne 0x4a6fe3
cmp byte [ebp - 0xb9], 0
jne 0x4a701f
cmp byte [ebp - 0xb9], 0
je 0x4a7011
mov eax, dword [0x52d34c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x114]
jle 0x4a7011
push ebp
call fcn.004a0220
pop ecx
mov eax, dword [0x52d34c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x114]
jg 0x4a6ffb
dec dword [ebp - 0x2c]
mov byte [ebp - 0xb9], 0
mov byte [ebp - 0x25], 0xff
cmp byte [ebp - 0x25], 0
jne 0x4a7050
mov byte [ebp - 0x25], 1
mov byte [ebp - 0x26], 0
mov eax, dword [0x52d338]
mov byte [eax], 0
mov eax, dword [0x52d990]
xor edx, edx
mov dword [eax], edx
call sub.kernel32.dll_GetTickCount
shr eax, 0xa
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], 0xffffffff
cmp byte [ebp - 0x2d], 0
je 0x4a7086
cmp byte [ebp - 0xb9], 0
jne 0x4a7086
push ebp
xor eax, eax
call fcn.004a0168
pop ecx
test al, al
je 0x4a7086
mov byte [0x52f7f7], 0
mov byte [ebp - 0xb9], 1
mov eax, dword [0x52d338]
mov byte [eax], 0
mov byte [ebp - 0x2d], 0
cmp byte [ebp - 0xb9], 0
jne 0x4a7346
cmp dword [ebp - 0x2c], 6
jne 0x4a7346
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a7346
cmp byte [ebp - 0x26], 0
jne 0x4a7346
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
movzx eax, byte [eax + 0xe]
mov edx, dword [0x52d438]
movzx eax, byte [edx + eax]
cmp byte [eax + 0x52f6fc], 0
je 0x4a7346
push ebp
mov al, 1
call fcn.004a0168
pop ecx
test al, al
je 0x4a7346
mov ax, word [0x4a764c]
mov word [ebp - 0x123], ax
mov eax, dword [0x52d7c4]
mov eax, dword [eax]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x174]
add eax, 0x320
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x178]
mov al, byte [eax]
mov edx, dword [ebp - 0x178]
mov dl, byte [edx + 1]
sub dl, al
jl 0x4a71a2
inc edx
mov byte [ebp - 0x124], dl
mov byte [ebp - 0x121], al
movsx eax, byte [ebp - 0x121]
shl eax, 2
mov edx, dword [ebp - 0x174]
mov cl, byte [ebp - 0xd]
and ecx, 0xff
bt dword [edx + eax*8 + 0x180], ecx
jae 0x4a7194
mov al, byte [ebp - 0xf]
add al, byte [ebp - 0x121]
push eax
push 0
xor eax, eax
mov al, byte [ebp - 0xd]
mov edx, dword [0x52d438]
mov dl, byte [edx + eax]
mov cl, byte [ebp - 0xe]
mov al, 1
call fcn.00497f34
xor eax, eax
mov al, byte [ebp - 0xf]
movsx edx, byte [ebp - 0x121]
add eax, edx
cmp eax, 0xf
ja 0x4a7194
bts dword [ebp - 0x123], eax
inc byte [ebp - 0x121]
dec byte [ebp - 0x124]
jne 0x4a7133
xor eax, eax
mov al, byte [ebp - 0xd]
mov edx, dword [0x52d438]
mov dl, byte [edx + eax]
xor ecx, ecx
mov al, 1
call fcn.0049e828
mov eax, dword [0x52d8fc]
mov al, byte [eax]
test al, al
jb 0x4a733f
inc eax
mov byte [ebp - 0x124], al
mov byte [ebp - 0x46], 0
mov al, byte [ebp - 0x46]
cmp al, 0xf
ja 0x4a71e4
and eax, 0x7f
bt dword [ebp - 0x123], eax
jae 0x4a7330
xor eax, eax
mov al, byte [ebp - 0xd]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0xe]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
cmp dword [eax + edx*4], 0
je 0x4a723d
mov al, byte [ebp - 0x46]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 0
mov cl, byte [ebp - 0xe]
mov dl, byte [ebp - 0xd]
mov ax, 0xa
call fcn.0041bc00
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov byte [eax + 6], 0
cmp byte [ebp - 0xd], 0x82
ja 0x4a72c2
xor eax, eax
mov al, byte [ebp - 0xd]
mov edx, dword [0x52d434]
cmp byte [edx + eax], 0
je 0x4a72c2
xor eax, eax
mov al, byte [ebp - 0xd]
mov edx, dword [0x52d434]
movzx eax, byte [edx + eax]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0xe]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
cmp dword [eax + edx*4], 0
je 0x4a7330
mov al, byte [ebp - 0x46]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 0
xor eax, eax
mov al, byte [ebp - 0xd]
mov edx, dword [0x52d434]
mov dl, byte [edx + eax]
mov cl, byte [ebp - 0xe]
mov ax, 0xa
call fcn.0041bc00
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov byte [eax + 6], 0
jmp 0x4a7330
cmp byte [ebp - 0xd], 0x82
jbe 0x4a7330
xor eax, eax
mov al, byte [ebp - 0xd]
mov edx, dword [0x52d438]
movzx eax, byte [edx + eax]
shl eax, 4
lea eax, [eax + eax*8]
mov edx, dword [0x52d900]
mov edx, dword [edx]
lea eax, [edx + eax*8]
xor edx, edx
mov dl, byte [ebp - 0xe]
add edx, edx
lea edx, [edx + edx*8]
lea eax, [eax + edx*8]
xor edx, edx
mov dl, byte [ebp - 0x46]
lea edx, [edx + edx*2]
cmp dword [eax + edx*4], 0
je 0x4a7330
mov al, byte [ebp - 0x46]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 0
xor eax, eax
mov al, byte [ebp - 0xd]
mov edx, dword [0x52d438]
mov dl, byte [edx + eax]
mov cl, byte [ebp - 0xe]
mov ax, 0xa
call fcn.0041bc00
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov byte [eax + 6], 0
inc byte [ebp - 0x46]
dec byte [ebp - 0x124]
jne 0x4a71d3
push ebp
call fcn.004a550c
pop ecx
cmp byte [ebp - 0xb9], 0
jne 0x4a736b
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0x20]
jge 0x4a736b
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a736b
cmp byte [ebp - 0x26], 0
je 0x4a6310
mov al, byte [ebp - 0x2e]
and al, byte [ebp - 0xb9]
je 0x4a7437
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a7437
mov eax, dword [0x52da18]
mov eax, dword [eax]
mov edx, dword [0x52d374]
mov dword [edx], eax
mov eax, dword [0x52d358]
mov eax, dword [eax]
mov edx, dword [0x52d570]
mov dword [edx], eax
mov eax, dword [0x52dbc0]
mov eax, dword [eax]
mov edx, dword [0x52d4d4]
mov dword [edx], eax
mov eax, dword [0x52da50]
mov eax, dword [eax]
mov edx, dword [0x52d3a0]
mov dword [edx], eax
mov eax, dword [0x52dacc]
mov eax, dword [eax]
mov edx, dword [0x52d408]
mov dword [edx], eax
mov eax, dword [0x52d8c4]
mov eax, dword [eax]
mov edx, dword [0x52db24]
mov dword [edx], eax
mov eax, dword [0x52d8e0]
mov ax, word [eax]
mov edx, dword [0x52db38]
mov word [edx], ax
cmp byte [ebp + 0x28], 2
jne 0x4a7437
mov eax, dword [0x52d7ec]
cmp dword [eax], 0
je 0x4a7437
mov eax, dword [0x52d3a0]
mov eax, dword [eax]
push eax
mov eax, dword [0x52d408]
mov eax, dword [eax]
push eax
mov eax, dword [0x52db24]
mov eax, dword [eax]
push eax
mov ecx, dword [0x52d4d4]
mov ecx, dword [ecx]
mov edx, dword [0x52d374]
mov edx, dword [edx]
mov eax, dword [0x52d7ec]
mov eax, dword [eax]
call fcn.0047a61c
cmp byte [ebp - 0xb9], 0
je 0x4a744a
mov eax, dword [0x52d338]
cmp byte [eax], 0
je 0x4a74a5
mov eax, dword [0x52d338]
mov al, byte [eax]
xor al, 1
or al, byte [ebp - 0x26]
je 0x4a747d
cmp byte [ebp - 0x2e], 0
je 0x4a7464
cmp byte [ebp + 0x1c], 2
jne 0x4a747d
cmp byte [ebp + 0x28], 1
ja 0x4a747d
xor eax, eax
mov al, byte [ebp - 0xed]
add eax, 0x300
mov dword [ebp - 0xfc], eax
mov eax, dword [0x52d34c]
cmp dword [eax], 0
jle 0x4a7498
push ebp
call fcn.004a0220
pop ecx
mov eax, dword [0x52d34c]
cmp dword [eax], 0
jg 0x4a7487
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
je 0x4a74a5
call fcn.0041c644
mov eax, dword [ebp - 0x14]
cmp dword [eax], 0
jle 0x4a74b2
mov eax, dword [ebp - 0x14]
dec dword [eax]
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a74c8
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
jne 0x4a62ba
cmp byte [ebp + 0x1c], 2
je 0x4a74d9
cmp byte [ebp + 0x28], 0
je 0x4a74d9
call fcn.00402d2c
cmp byte [ebp - 0xb9], 0
je 0x4a74f5
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a74f5
mov eax, dword [ebp - 0x14]
mov dword [eax], 0xffffffff
dec dword [ebp - 0x100]
mov al, byte [ebp - 0x2e]
and al, byte [ebp - 0xb9]
je 0x4a750b
call fcn.0041b9e4
cmp byte [ebp - 0x2e], 0
je 0x4a752e
cmp byte [ebp + 0x1c], 2
jae 0x4a752e
mov eax, dword [0x52d338]
cmp byte [eax], 0
jne 0x4a752e
cmp dword [ebp - 0x100], 0
jne 0x4a6277
cmp byte [ebp - 0x2e], 0
je 0x4a7557
cmp byte [ebp + 0x28], 1
ja 0x4a7557
mov eax, dword [ebp - 0xd0]
mov edx, dword [0x52d424]
mov edx, dword [edx]
mov esi, eax
lea edi, [edx + 0x11dc]
mov ecx, 0x477
rep movsd dword es:[edi], dword [esi]
cmp byte [ebp + 0x28], 0
cmp byte [0x52f7f7], 0
jne 0x4a759e
call fcn.00402d2c
mov eax, dword [0x52db98]
mov al, byte [eax]
test al, al
jbe 0x4a759e
mov byte [ebp - 0x124], al
mov byte [ebp - 0x3d], 1
xor eax, eax
mov al, byte [ebp - 0x3d]
mov edx, dword [0x52d7d8]
mov edx, dword [edx]
mov al, byte [edx + eax]
call fcn.004139ac
inc byte [ebp - 0x3d]
dec byte [ebp - 0x124]
jne 0x4a757e
mov eax, dword [0x52d75c]
cmp dword [eax], 0
setne dl
xor ecx, ecx
xor eax, eax
call fcn.0049ec94
mov edx, 0x23b8
mov eax, dword [ebp - 4]
call sub.Vcl40.bpl__System__FreeMem_qqrv
mov edx, 0xbc4
mov eax, dword [ebp - 8]
call sub.Vcl40.bpl__System__FreeMem_qqrv
mov edx, 0x11dc
mov eax, dword [ebp - 0xd0]
call sub.Vcl40.bpl__System__FreeMem_qqrv
mov edx, 0x68f
mov eax, dword [ebp - 0xdc]
call sub.Vcl40.bpl__System__FreeMem_qqrv
mov edx, 0x624
mov eax, dword [ebp - 0xe0]
call sub.Vcl40.bpl__System__FreeMem_qqrv
mov edx, 0x2fa
mov eax, dword [ebp - 0xd4]
call sub.Vcl40.bpl__System__FreeMem_qqrv
mov edx, 0x2fa
mov eax, dword [ebp - 0xd8]
call sub.Vcl40.bpl__System__FreeMem_qqrv
mov eax, dword [ebp - 0xfc]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x24