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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov esi, ecx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 8]
xor eax, eax
push ebp
push 0x4a3c95
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0052eb18
test al, al
je 0x4a3c72
mov ax, word [esi]
sub ax, 0xd
je 0x4a2989
sub ax, 6
jne 0x4a2a4e
mov word [esi], 0
mov eax, dword [ebp - 4]
call fcn.004a1b34
jmp 0x4a2a4e
test bl, 2
je 0x4a2a4e
cmp word [esi], 0xd
jne 0x4a2a4e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
call fcn.0046e8d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
test byte [eax + 0x226], 1
je 0x4a29f0
mov eax, dword [ebp - 4]
call fcn.004663c8
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00457940
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x344]
mov dx, word [0x4a3ca8]
not edx
and dx, word [ebx + 0x226]
mov eax, ebx
call fcn.0046f3a0
jmp 0x4a2a20
mov eax, dword [ebp - 4]
call fcn.004663f4
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00457940
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x344]
mov dx, word [ebx + 0x226]
or dx, word [0x4a3ca8]
mov eax, ebx
call fcn.0046f3a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
test byte [eax + 0x226], 1
setne al
mov edx, dword [0x544fbc]
mov byte [edx], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
call fcn.0046ec18
jmp 0x4a3c72
mov edx, esi
mov eax, dword [0x545114]
mov eax, dword [eax]
mov ecx, ebx
call fcn.0047d6c0
test al, al
jne 0x4a3c72
mov eax, dword [0x544738]
cmp dword [eax], 0
je 0x4a3c72
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov edx, dword [0x544574]
cmp eax, dword [edx]
jne 0x4a3c72
mov eax, dword [0x544b8c]
cmp dword [eax + 0x10], 0
je 0x4a2aae
push ebx
mov ax, word [esi]
push eax
mov eax, dword [0x544b8c]
mov eax, dword [eax + 0x10]
call eax
test al, al
jne 0x4a3c72
mov ax, word [esi]
sub ax, 0x24
je 0x4a2abd
sub ax, 0x57
jne 0x4a2ac9
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004f0eb8
mov eax, dword [0x544f94]
cmp byte [eax + 0x74], 0
je 0x4a2e42
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x78]
test edi, edi
je 0x4a2b14
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2b14
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2b14
mov eax, dword [ebp - 4]
call fcn.004a4938
mov word [esi], 0
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x88]
test edi, edi
je 0x4a2b6e
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2b6e
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2b6e
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a2b69
mov eax, dword [0x544c68]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x4a2b69
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051e9f8
mov word [esi], 0
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x7c]
test edi, edi
je 0x4a2be4
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2be4
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2be4
mov eax, dword [0x544c68]
cmp dword [eax], 0
jne 0x4a2bc0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x140f
mov eax, dword [0x54ddf8]
call fcn.004aa548
jmp 0x4a2bdf
push 0
push 0
push 0
mov eax, dword [0x544c68]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov edx, 0x1410
mov eax, dword [0x54ddf8]
call fcn.004aa548
mov word [esi], 0
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x80]
test edi, edi
je 0x4a2c3e
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2c3e
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2c3e
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a2c39
mov eax, dword [0x544c68]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x4a2c39
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051ea48
mov word [esi], 0
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x84]
test edi, edi
je 0x4a2c98
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2c98
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2c98
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a2c93
mov eax, dword [0x544c68]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x4a2c93
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051e8c4
mov word [esi], 0
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x8c]
test edi, edi
je 0x4a2cf2
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2cf2
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2cf2
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a2ced
mov eax, dword [0x544c68]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne 0x4a2ced
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051ea20
mov word [esi], 0
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x90]
test edi, edi
je 0x4a2d36
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2d36
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2d36
mov edx, 0x4a3cb4
mov eax, dword [ebp - 4]
call fcn.004ab128
mov word [esi], 0
mov edi, dword [0x544f94]
mov edi, dword [edi + 0x94]
test edi, edi
je 0x4a2e42
lea edx, [ebp - 9]
mov eax, dword [0x544f94]
mov eax, edi
call fcn.0052e214
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a2e42
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a2e42
mov eax, dword [0x544bc0]
cmp byte [eax], 0
jne 0x4a2db6
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54452c]
cmp eax, dword [edx]
jbe 0x4a2dda
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x54452c]
mov dword [edx], eax
mov eax, dword [0x54ddf8]
call fcn.004ad0f8
mov eax, dword [0x5444d8]
mov dword [eax], 1
jmp 0x4a2dda
mov eax, dword [0x5444d8]
cmp dword [eax], 3
jl 0x4a2dd3
mov eax, dword [0x5444d8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x544bc0]
mov byte [eax], 0
jmp 0x4a2dda
mov eax, dword [0x5444d8]
inc dword [eax]
mov edx, dword [0x544bc0]
mov dl, byte [edx]
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
call fcn.00473e94
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
cmp byte [eax + 0x2a8], 0
jne 0x4a2e3d
mov edx, dword [0x5452a8]
mov edx, dword [edx]
mov edx, dword [edx + 0x870]
mov edx, dword [edx + 0x48]
mov ecx, dword [0x5452a8]
call fcn.0043d844
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
mov edx, 0x78
call fcn.0043d868
mov word [esi], 0
movzx eax, word [esi]
add eax, 0xfffffff7
cmp eax, 0x71
ja case.0x4a2e57.9
mov al, byte [eax + 0x4a2e5e]
jmp dword [eax*4 + 0x4a2ed0]
mov eax, dword [0x544aa4]
cmp byte [eax + 0xf], 0
je 0x4a2f9d
mov eax, dword [0x544738]
mov eax, dword [eax]
movzx eax, byte [eax + 0xa3]
imul eax, eax, 0x1f4
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fdiv dword [0x4a3cc0]
call fcn.0040333c
mov edi, 0x1f4
sub edi, eax
mov eax, dword [0x544738]
mov eax, dword [eax]
movsx eax, word [eax + 0x2a4]
cdq
push edx
push eax
mov eax, edi
xor edx, edx
call fcn.0040623c
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
fild qword [ebp - 0x18]
fdiv dword [0x4a3cc4]
call fcn.00403330
sub edi, eax
jmp 0x4a2fa2
mov edi, 0x1f4
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5445e0]
sub eax, dword [edx]
mov edx, dword [0x5444ac]
add edi, dword [edx]
cmp eax, edi
jbe 0x4a3394
mov eax, dword [ebp - 4]
cmp word [eax + 0x506], 0
jne 0x4a3394
test bl, 4
je 0x4a2fe8
mov ax, word [esi]
sub ax, 0x64
mov edx, dword [ebp - 4]
mov word [edx + 0x506], ax
jmp 0x4a2ff5
mov ax, word [esi]
mov edx, dword [ebp - 4]
mov word [edx + 0x506], ax
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov bx, word [eax + 0x506]
mov eax, ebx
add eax, 0xfffffff4
sub ax, 8
jb 0x4a302d
add eax, 0xffffffa4
sub ax, 8
jae 0x4a3043
mov edx, ebx
sub dl, 0x70
add dl, 0x31
mov eax, dword [ebp - 4]
call fcn.004a4140
mov dword [ebp - 8], eax
jmp 0x4a3043
mov edx, ebx
sub dl, 0xc
add dl, 0x31
add dl, 0x14
mov eax, dword [ebp - 4]
call fcn.004a4140
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4a3079
mov eax, dword [ebp - 8]
movzx eax, word [eax + 8]
call fcn.0049efc4
test al, al
jne 0x4a3079
mov eax, dword [0x544738]
mov eax, dword [eax]
cmp byte [eax + 0x16], 0
jbe 0x4a3079
mov eax, dword [0x544f94]
cmp byte [eax + 0x3b], 0
je 0x4a3079
mov eax, dword [ebp - 4]
call fcn.004aa494
mov eax, dword [0x544738]
mov eax, dword [eax]
cmp byte [eax + 0x19], 2
jne 0x4a3394
cmp dword [ebp - 8], 0
je 0x4a3394
mov eax, dword [0x544f94]
cmp byte [eax + 0x6e], 0
je 0x4a3394
mov eax, dword [0x544f9c]
cmp byte [eax + 8], 0
jne 0x4a3394
mov eax, dword [ebp - 8]
movzx eax, word [eax + 8]
cmp eax, 0x34
jg 0x4a30e8
je 0x4a32f4
sub eax, 6
je 0x4a3108
add eax, 0xfffffff9
sub eax, 7
jb 0x4a3219
sub eax, 0xa
je 0x4a3219
sub eax, 8
je 0x4a3108
jmp 0x4a3394
sub eax, 0x39
je 0x4a3219
sub eax, 0xf
je 0x4a3219
sub eax, 4
je 0x4a3219
jmp 0x4a3394
mov eax, dword [0x544f94]
cmp byte [eax + 0x6f], 0
je 0x4a31ad
mov eax, dword [0x545110]
cmp dword [eax], 0
jge 0x4a3132
mov eax, dword [0x544f94]
mov eax, dword [eax + 0x70]
inc eax
mov edx, dword [0x545110]
mov dword [edx], eax
mov eax, dword [0x5444e4]
cmp byte [eax + 0x5e8], 0
je 0x4a3177
mov eax, dword [0x5444e4]
cmp byte [eax + 0x626], 0x19
jne 0x4a3177
mov eax, dword [0x5444e4]
cmp word [eax + 0x68c], 0x64
jb 0x4a3177
mov eax, dword [0x5444e4]
movzx eax, byte [eax + 0x627]
mov edx, dword [0x545110]
cmp eax, dword [edx]
je 0x4a3394
mov eax, dword [0x545110]
mov eax, dword [eax]
mov edx, 1
call fcn.004a2810
mov eax, dword [0x545110]
inc dword [eax]
mov eax, dword [0x545110]
cmp dword [eax], 2
jle 0x4a3394
mov eax, dword [0x545110]
mov dword [eax], 1
jmp 0x4a3394
mov eax, dword [0x544f94]
mov eax, dword [eax + 0x70]
inc eax
mov edx, dword [0x545110]
mov dword [edx], eax
mov eax, dword [0x5444e4]
cmp byte [eax + 0x5e8], 0
je 0x4a3203
mov eax, dword [0x5444e4]
cmp byte [eax + 0x626], 0x19
jne 0x4a3203
mov eax, dword [0x5444e4]
cmp word [eax + 0x68c], 0x64
jb 0x4a3203
mov eax, dword [0x5444e4]
movzx eax, byte [eax + 0x627]
mov edx, dword [0x545110]
cmp eax, dword [edx]
je 0x4a3394
mov eax, dword [0x545110]
mov eax, dword [eax]
mov edx, 1
call fcn.004a2810
jmp 0x4a3394
mov ebx, 1
mov eax, dword [ebp - 8]
mov ax, word [eax + 8]
cmp ax, 0x1e
je 0x4a3231
cmp ax, 0x48
jne 0x4a3236
mov ebx, 5
mov eax, dword [0x5444e4]
cmp byte [eax + 0x5e8], 0
je 0x4a3295
mov eax, dword [0x5444e4]
cmp byte [eax + 0x626], 0x19
jne 0x4a3295
mov eax, dword [0x5444e4]
movzx eax, word [eax + 0x68c]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fdiv dword [0x4a3cc0]
call fcn.00403330
push edx
push eax
mov eax, ebx
cdq
cmp edx, dword [esp + 4]
jne 0x4a3283
cmp eax, dword [esp]
pop edx
pop eax
ja 0x4a3295
jmp 0x4a3287
pop edx
pop eax
jg 0x4a3295
mov eax, dword [0x5444e4]
cmp byte [eax + 0x627], 5
je 0x4a32a6
mov edx, ebx
mov eax, 5
call fcn.004a2810
jmp 0x4a3394
mov eax, dword [0x5444e4]
movzx eax, word [eax + 0x68c]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fdiv dword [0x4a3cc0]
call fcn.00403330
push edx
push eax
mov eax, ebx
cdq
cmp edx, dword [esp + 4]
jne 0x4a32db
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x4a3394
jmp 0x4a32e3
pop edx
pop eax
jle 0x4a3394
mov edx, ebx
mov eax, 5
call fcn.004a2810
jmp 0x4a3394
mov eax, dword [0x5444e4]
cmp byte [eax + 0x5e8], 0
je 0x4a3349
mov eax, dword [0x5444e4]
cmp byte [eax + 0x626], 0x19
jne 0x4a3349
mov eax, dword [0x5444e4]
movzx eax, word [eax + 0x68c]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fdiv dword [0x4a3cc0]
call fcn.00403330
cmp edx, 0
jne 0x4a3339
cmp eax, 3
jb 0x4a3349
jmp 0x4a333b
jl 0x4a3349
mov eax, dword [0x5444e4]
cmp byte [eax + 0x627], 3
je 0x4a335a
mov edx, 3
mov eax, 3
call fcn.004a2810
jmp 0x4a3394
mov eax, dword [0x5444e4]
movzx eax, word [eax + 0x68c]
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fdiv dword [0x4a3cc0]
call fcn.00403330
cmp edx, 0
jne 0x4a3383
cmp eax, 3
jae 0x4a3394
jmp 0x4a3385
jge 0x4a3394
mov edx, 3
mov eax, 3
call fcn.004a2810
mov word [esi], 0
jmp case.0x4a2e57.9
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004d5728
mov word [esi], 0
jmp case.0x4a2e57.9
mov eax, dword [0x5452a8]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xc84], edx
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004d56cc
mov word [esi], 0
jmp case.0x4a2e57.9
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov dword [eax + 0xc84], 3
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004d56cc
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov edx, 0x4a3cb4
mov eax, dword [ebp - 4]
call fcn.004ab128
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov edx, 0x4a3cd0
mov eax, dword [ebp - 4]
call fcn.004ab128
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 2
je 0x4a345b
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004bd3fc
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov eax, dword [ebp - 4]
call fcn.004a4938
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a3c72
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051e9f8
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a3c72
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051ea48
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je 0x4a34f4
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a3c72
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051ea20
mov word [esi], 0
jmp case.0x4a2e57.9
mov eax, dword [0x544738]
cmp dword [eax], 0
je 0x4a3c72
test bl, 2
je case.0x4a2e57.9
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x544e50]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x545184]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x544df4]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544e50]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a357d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x545184]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a357d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544df4]
sub eax, dword [edx]
cmp eax, 0x2710
ja 0x4a358a
mov eax, dword [0x544738]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
je 0x4a3597
mov eax, dword [ebp - 4]
call fcn.004a1900
jmp case.0x4a2e57.9
push 0xff
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov ecx, 0xffff
mov edx, 0x4a3ce0
call fcn.0053ad68
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov eax, dword [0x544c68]
cmp dword [eax], 0
je case.0x4a2e57.9
mov eax, dword [0x544c68]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne case.0x4a2e57.9
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov eax, dword [0x544c68]
cmp dword [eax], 0
je case.0x4a2e57.9
mov eax, dword [0x544c68]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
jne case.0x4a2e57.9
mov eax, dword [0x544c68]
mov eax, dword [eax]
call fcn.0051e8c4
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov eax, dword [0x5448e8]
cmp dword [eax], 7
jge 0x4a3642
mov eax, dword [0x5448e8]
inc dword [eax]
jmp 0x4a364b
mov eax, dword [0x5448e8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x544950]
mov edx, dword [0x5448e8]
mov edx, dword [edx]
mov ecx, dword [0x544e08]
mov edx, dword [ecx + edx*4]
call fcn.004050d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
mov eax, dword [eax + 0x288]
call fcn.0046c708
mov eax, dword [eax + 0xc]
mov edx, dword [0x544950]
mov edx, dword [edx]
call fcn.00425d14
mov edx, dword [0x544950]
mov edx, dword [edx]
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
mov eax, dword [eax + 0x68]
call fcn.00425d14
mov edx, dword [0x544950]
mov edx, dword [edx]
mov eax, dword [0x54ddf8]
mov eax, dword [eax + 0x68]
call fcn.00425d14
mov eax, dword [0x54ddf8]
call fcn.00457bf8
mov eax, dword [eax + 0xc]
mov edx, dword [0x544950]
mov edx, dword [edx]
call fcn.00425d14
mov ecx, 0x4a3d04
mov dl, 1
mov eax, dword [0x45f334]
call fcn.0045f3e4
mov ebx, eax
test ebx, ebx
je 0x4a370d
mov eax, dword [0x544950]
mov eax, dword [eax]
push eax
mov ecx, 0x4a3d18
mov edx, 0x4a3d2c
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 4]
mov eax, ebx
call fcn.00404250
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je 0x4a372f
mov eax, dword [0x545284]
mov al, byte [eax]
xor al, 1
mov edx, dword [0x545284]
mov byte [edx], al
jmp 0x4a3737
mov eax, dword [ebp - 4]
call fcn.004abc80
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 2
je case.0x4a2e57.9
mov eax, dword [0x545064]
mov al, byte [eax]
sub al, 1
jb 0x4a375c
je 0x4a37bd
jmp 0x4a385b
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a376e
mov eax, dword [0x545064]
mov byte [eax], 1
mov eax, dword [0x544738]
cmp dword [eax], 0
je 0x4a385b
mov eax, dword [0x5450c0]
mov byte [eax], 1
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x51
mov eax, dword [ebp - 4]
call fcn.004aa548
push 0xff00ff
lea eax, [ebp - 0x20]
push eax
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov ecx, 0xffffff
mov edx, 0x4a3d3c
call fcn.0053ad68
jmp 0x4a385b
mov eax, dword [0x544c68]
cmp dword [eax], 0
je 0x4a380d
mov eax, dword [0x545064]
mov byte [eax], 0
mov eax, dword [0x545214]
mov byte [eax], 1
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x1460
mov eax, dword [ebp - 4]
call fcn.004aa548
push 0xff00ff
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov ecx, 0xffffff
mov edx, 0x4a3d54
call fcn.0053ad68
jmp 0x4a385b
mov eax, dword [0x545064]
mov byte [eax], 0
mov eax, dword [0x544738]
cmp dword [eax], 0
je 0x4a385b
mov eax, dword [0x5450c0]
mov byte [eax], 1
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x51
mov eax, dword [ebp - 4]
call fcn.004aa548
push 0xff00ff
lea eax, [ebp - 0x28]
push eax
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov ecx, 0xffffff
mov edx, 0x4a3d3c
call fcn.0053ad68
mov word [esi], 0
jmp case.0x4a2e57.9
mov eax, dword [0x544738]
cmp dword [eax], 0
je 0x4a3c72
test bl, 2
je case.0x4a2e57.9
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x544e50]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x545184]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x544df4]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544e50]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a38ee
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x545184]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a38ee
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x544df4]
sub eax, dword [edx]
cmp eax, 0x2710
ja 0x4a38fb
mov eax, dword [0x544738]
mov eax, dword [eax]
cmp byte [eax + 0x2c], 0
je 0x4a3908
mov eax, dword [ebp - 4]
call fcn.004a18b0
jmp case.0x4a2e57.9
push 0xff
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [0x544a40]
mov eax, dword [eax]
mov ecx, 0xffff
mov edx, 0x4a3ce0
call fcn.0053ad68
jmp case.0x4a2e57.9
mov eax, dword [0x544bc0]
cmp byte [eax], 0
jne 0x4a396e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54452c]
cmp eax, dword [edx]
jbe 0x4a3992
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x54452c]
mov dword [edx], eax
mov eax, dword [0x54ddf8]
call fcn.004ad0f8
mov eax, dword [0x5444d8]
mov dword [eax], 1
jmp 0x4a3992
mov eax, dword [0x5444d8]
cmp dword [eax], 3
jl 0x4a398b
mov eax, dword [0x5444d8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x544bc0]
mov byte [eax], 0
jmp 0x4a3992
mov eax, dword [0x5444d8]
inc dword [eax]
mov edx, dword [0x544bc0]
mov dl, byte [edx]
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
call fcn.00473e94
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
cmp byte [eax + 0x2a8], 0
jne 0x4a39f5
mov edx, dword [0x5452a8]
mov edx, dword [edx]
mov edx, dword [edx + 0x870]
mov edx, dword [edx + 0x48]
mov ecx, dword [0x5452a8]
call fcn.0043d844
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
mov edx, 0x78
call fcn.0043d868
mov word [esi], 0
jmp case.0x4a2e57.9
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54452c]
cmp eax, dword [edx]
jbe case.0x4a2e57.9
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x54452c]
mov dword [edx], eax
mov eax, dword [0x54ddf8]
call fcn.004ad160
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je 0x4a3ace
mov eax, dword [0x544898]
cmp dword [eax], 0
je 0x4a3b59
mov edx, dword [0x544898]
mov edx, dword [edx]
mov eax, dword [0x544574]
mov eax, dword [eax]
call fcn.00525088
test al, al
je 0x4a3b59
mov eax, dword [0x544f60]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x4a3a8f
mov eax, dword [0x544898]
mov eax, dword [eax]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 4]
call fcn.004ad054
jmp 0x4a3aa1
mov eax, dword [0x544898]
mov eax, dword [eax]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 4]
call fcn.004ad96c
lea eax, [ebp - 0x30]
mov edx, dword [0x544898]
mov edx, dword [edx]
mov edx, dword [edx + 0x34]
call fcn.00405940
mov edx, dword [ebp - 0x30]
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
call fcn.0047981c
jmp 0x4a3b59
test bl, 2
je 0x4a3b09
mov eax, dword [0x544898]
cmp dword [eax], 0
je 0x4a3b59
mov edx, dword [0x544898]
mov edx, dword [edx]
mov eax, dword [0x544574]
mov eax, dword [eax]
call fcn.00525088
test al, al
je 0x4a3b59
mov eax, dword [0x544898]
mov eax, dword [eax]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 4]
call fcn.004ada10
jmp 0x4a3b59
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x484]
cmp byte [eax + 0x2a8], 0
je 0x4a3b2e
mov edx, dword [0x5452a8]
xor edx, edx
call fcn.00473e94
jmp 0x4a3b59
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x54452c]
cmp eax, dword [edx]
jbe 0x4a3b59
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x54452c]
mov dword [edx], eax
mov eax, dword [0x54ddf8]
call fcn.004ad230
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 2
je 0x4a3b85
mov eax, dword [0x544b8c]
cmp dword [eax + 0x28], 0
je 0x4a3b91
push 0
push 1
push 0
mov eax, dword [0x544b8c]
mov eax, dword [eax + 0x28]
call eax
jmp 0x4a3b91
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004e603c
mov word [esi], 0
jmp case.0x4a2e57.9
mov eax, dword [0x5452a8]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xc84], edx
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004d56cc
mov word [esi], 0
jmp case.0x4a2e57.9
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004d5728
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je 0x4a3bdc
mov eax, dword [ebp - 4]
call fcn.004aa494
jmp 0x4a3be8
mov eax, dword [0x5452a8]
mov eax, dword [eax]
call fcn.004d5a58
mov word [esi], 0
jmp case.0x4a2e57.9
test bl, 4
je case.0x4a2e57.9
mov eax, dword [0x545148]
mov eax, dword [eax]
mov dl, byte [eax + 0x18]
xor dl, 1
mov eax, dword [0x545148]
mov eax, dword [eax]
call fcn.004ffc30
mov eax, dword [0x5452a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x8f4]
mov dx, word [esi]
sub dx, 0x21
je 0x4a3c44
dec dx
je 0x4a3c5c
sub dx, 4
je 0x4a3c36
sub dx, 2
je 0x4a3c3d
jmp 0x4a3c72
call fcn.0047bb8c
jmp 0x4a3c72
call fcn.0047b9d0
jmp 0x4a3c72
mov edx, dword [eax + 0x2e4]
mov ecx, dword [eax + 0x2d8]
lea ecx, [ecx + ecx*8]
sub edx, ecx
call fcn.0047b60c
jmp 0x4a3c72
mov edx, dword [eax + 0x2e4]
mov ecx, dword [eax + 0x2d8]
lea ecx, [ecx + ecx*8]
add edx, ecx
call fcn.0047b60c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a3c9c
lea eax, [ebp - 0x30]
call fcn.004057d8
lea eax, [ebp - 0x2c]
mov edx, 5
call fcn.004050a4
ret