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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 6
push 0
push 0
dec ecx
jne 0x4a2ff9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 8]
xor eax, eax
push ebp
push 0x4a442c
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004ffcb4
test al, al
je 0x4a43e9
mov ax, word [esi]
sub ax, 0xd
je 0x4a31ce
sub ax, 6
je 0x4a31bc
sub ax, 0x13
je 0x4a3056
sub ax, 2
je 0x4a3131
jmp 0x4a3293
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
cmp byte [eax + 0x2a8], 0
je 0x4a43e9
mov eax, dword [0x53e554]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4a43e9
test bl, 1
je 0x4a3293
mov eax, dword [0x53e554]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
mov edx, dword [0x53efb8]
cmp eax, dword [edx]
jle 0x4a30be
mov edx, dword [0x53efb8]
mov edx, dword [edx]
inc edx
xor eax, eax
call fcn.004782a0
mov edx, dword [0x53efb8]
mov dword [edx], eax
jmp 0x4a30d3
mov eax, dword [0x53e554]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
mov edx, dword [0x53efb8]
mov dword [edx], eax
mov eax, dword [0x53e554]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
mov edx, dword [0x53efb8]
mov edx, dword [edx]
call fcn.00478298
mov edx, dword [0x53efb8]
mov dword [edx], eax
lea ecx, [ebp - 0x14]
mov edx, dword [0x53efb8]
mov edx, dword [edx]
mov eax, dword [0x53e554]
mov eax, dword [eax]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.0040562c
mov edx, dword [ebp - 0x10]
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
call fcn.00482fb4
jmp 0x4a3293
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
cmp byte [eax + 0x2a8], 0
je 0x4a43e9
mov eax, dword [0x53e554]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4a43e9
test bl, 1
je 0x4a3293
mov edx, dword [0x53efb8]
mov edx, dword [edx]
dec edx
xor eax, eax
call fcn.004782a0
mov edx, dword [0x53efb8]
mov dword [edx], eax
lea ecx, [ebp - 0x1c]
mov edx, dword [0x53efb8]
mov edx, dword [edx]
mov eax, dword [0x53e554]
mov eax, dword [eax]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
call fcn.0040562c
mov edx, dword [ebp - 0x18]
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
call fcn.00482fb4
jmp 0x4a3293
mov word [esi], 0
mov eax, dword [ebp - 4]
call fcn.004a2234
jmp 0x4a3293
test bl, 2
je 0x4a3293
cmp word [esi], 0xd
jne 0x4a3293
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
call fcn.00476834
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
test byte [eax + 0x226], 1
je 0x4a3235
mov eax, dword [ebp - 4]
call fcn.00463c2c
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.004551a4
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x344]
mov dx, word [0x4a443c]
not edx
and dx, word [ebx + 0x226]
mov eax, ebx
call fcn.004772fc
jmp 0x4a3265
mov eax, dword [ebp - 4]
call fcn.00463c58
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004551a4
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x344]
mov dx, word [ebx + 0x226]
or dx, word [0x4a443c]
mov eax, ebx
call fcn.004772fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
test byte [eax + 0x226], 1
setne al
mov edx, dword [0x53ef3c]
mov byte [edx], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
call fcn.00476b74
jmp 0x4a43e9
mov edx, esi
mov eax, dword [0x53f094]
mov eax, dword [eax]
mov ecx, ebx
call fcn.00486e58
test al, al
jne 0x4a43e9
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4a43e9
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov edx, dword [0x53e520]
cmp eax, dword [edx]
jne 0x4a43e9
mov eax, dword [0x53eb20]
cmp dword [eax + 0x74], 0
je 0x4a32f3
push ebx
mov ax, word [esi]
push eax
mov eax, dword [0x53eb20]
mov eax, dword [eax + 0x74]
call eax
test al, al
jne 0x4a43e9
mov ax, word [esi]
sub ax, 0x24
je 0x4a3302
sub ax, 0x57
jne 0x4a330e
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004ee2e4
mov eax, dword [0x53ef18]
cmp byte [eax + 0x70], 0
je 0x4a3684
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x74]
test edi, edi
je 0x4a3359
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a3359
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a3359
mov eax, dword [ebp - 4]
call fcn.004a50dc
mov word [esi], 0
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x84]
test edi, edi
je 0x4a33b3
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a33b3
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a33b3
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a33ae
mov eax, dword [0x53ec04]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne 0x4a33ae
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.005297b0
mov word [esi], 0
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x78]
test edi, edi
je 0x4a3429
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a3429
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a3429
mov eax, dword [0x53ec04]
cmp dword [eax], 0
jne 0x4a3405
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x140f
mov eax, dword [0x586858]
call fcn.004aa9d8
jmp 0x4a3424
push 0
push 0
push 0
mov eax, dword [0x53ec04]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov edx, 0x1410
mov eax, dword [0x586858]
call fcn.004aa9d8
mov word [esi], 0
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x7c]
test edi, edi
je 0x4a3480
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a3480
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a3480
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a347b
mov eax, dword [0x53ec04]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne 0x4a347b
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.00529800
mov word [esi], 0
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x80]
test edi, edi
je 0x4a34da
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a34da
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a34da
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a34d5
mov eax, dword [0x53ec04]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne 0x4a34d5
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.005296d8
mov word [esi], 0
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x88]
test edi, edi
je 0x4a3534
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a3534
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a3534
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a352f
mov eax, dword [0x53ec04]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne 0x4a352f
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.005297d8
mov word [esi], 0
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x8c]
test edi, edi
je 0x4a3578
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a3578
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a3578
mov edx, 0x4a4448
mov eax, dword [ebp - 4]
call fcn.004ab4f0
mov word [esi], 0
mov edi, dword [0x53ef18]
mov edi, dword [edi + 0x90]
test edi, edi
je 0x4a3684
lea edx, [ebp - 9]
mov eax, dword [0x53ef18]
mov eax, edi
call fcn.004ff3b0
movzx eax, ax
mov edi, eax
movzx eax, word [esi]
cmp edi, eax
jne 0x4a3684
mov eax, ebx
cmp al, byte [ebp - 9]
jne 0x4a3684
mov eax, dword [0x53eb50]
cmp byte [eax], 0
jne 0x4a35f8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e4d0]
cmp eax, dword [edx]
jbe 0x4a361c
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x53e4d0]
mov dword [edx], eax
mov eax, dword [0x586858]
call fcn.004ad410
mov eax, dword [0x53e484]
mov dword [eax], 1
jmp 0x4a361c
mov eax, dword [0x53e484]
cmp dword [eax], 3
jl 0x4a3615
mov eax, dword [0x53e484]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x53eb50]
mov byte [eax], 0
jmp 0x4a361c
mov eax, dword [0x53e484]
inc dword [eax]
mov edx, dword [0x53eb50]
mov dl, byte [edx]
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
call fcn.0047d810
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
cmp byte [eax + 0x2a8], 0
jne 0x4a367f
mov edx, dword [0x53f218]
mov edx, dword [edx]
mov edx, dword [edx + 0x870]
mov edx, dword [edx + 0x48]
mov ecx, dword [0x53f218]
call fcn.0043b0a8
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
mov edx, 0x78
call fcn.0043b0cc
mov word [esi], 0
movzx eax, word [esi]
add eax, 0xfffffff7
cmp eax, 0x71
ja case.0x4a3699.9
mov al, byte [eax + 0x4a36a0]
jmp dword [eax*4 + 0x4a3712]
mov eax, dword [0x53ea3c]
cmp byte [eax + 0xf], 0
je 0x4a37ac
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
movzx eax, byte [eax + 0x73]
imul eax, eax, 0x1f4
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fdiv dword [0x4a4454]
call fcn.00402fd4
mov edi, 0x1f4
sub edi, eax
jmp 0x4a37d3
mov eax, dword [0x53ea3c]
movzx eax, byte [eax + 0x33]
imul eax, eax, 0x1f4
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fdiv dword [0x4a4454]
call fcn.00402fd4
mov edi, 0x1f4
sub edi, eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e594]
sub eax, dword [edx]
mov edx, dword [0x53e45c]
add edi, dword [edx]
cmp eax, edi
jbe 0x4a3b44
mov eax, dword [ebp - 4]
cmp word [eax + 0x3ca], 0
jne 0x4a3b44
test bl, 4
je 0x4a3819
mov ax, word [esi]
sub ax, 0x64
mov edx, dword [ebp - 4]
mov word [edx + 0x3ca], ax
jmp 0x4a3826
mov ax, word [esi]
mov edx, dword [ebp - 4]
mov word [edx + 0x3ca], ax
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov bx, word [eax + 0x3ca]
mov eax, ebx
add eax, 0xfffffff4
sub ax, 8
jb 0x4a385e
add eax, 0xffffffa4
sub ax, 8
jae 0x4a3874
mov edx, ebx
sub dl, 0x70
add dl, 0x31
mov eax, dword [ebp - 4]
call fcn.004a48bc
mov dword [ebp - 8], eax
jmp 0x4a3874
mov edx, ebx
sub dl, 0xc
add dl, 0x31
add dl, 0x14
mov eax, dword [ebp - 4]
call fcn.004a48bc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4a38aa
mov eax, dword [ebp - 8]
movzx eax, word [eax + 8]
call fcn.0049fe80
test al, al
jne 0x4a38aa
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
cmp byte [eax + 0x16], 0
jbe 0x4a38aa
mov eax, dword [0x53ef18]
cmp byte [eax + 0x3b], 0
je 0x4a38aa
mov eax, dword [ebp - 4]
call fcn.004aa924
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
cmp byte [eax + 0x1a], 2
jne 0x4a3b44
cmp dword [ebp - 8], 0
je 0x4a3b44
mov eax, dword [0x53ef18]
cmp byte [eax + 0x6a], 0
je 0x4a3b44
mov eax, dword [0x53ef1c]
cmp byte [eax + 8], 0
jne 0x4a3b44
mov eax, dword [ebp - 8]
movzx eax, word [eax + 8]
cmp eax, 0x34
jg 0x4a3919
je 0x4a3acf
sub eax, 6
je 0x4a3939
add eax, 0xfffffff9
sub eax, 7
jb 0x4a3a2c
sub eax, 0xa
je 0x4a3a2c
sub eax, 8
je 0x4a3939
jmp 0x4a3b44
sub eax, 0x39
je 0x4a3a2c
sub eax, 0xf
je 0x4a3a2c
sub eax, 4
je 0x4a3a2c
jmp 0x4a3b44
mov eax, dword [0x53ef18]
cmp byte [eax + 0x6b], 0
je 0x4a39cf
mov eax, dword [0x53f08c]
cmp dword [eax], 0
jge 0x4a3963
mov eax, dword [0x53ef18]
mov eax, dword [eax + 0x6c]
inc eax
mov edx, dword [0x53f08c]
mov dword [edx], eax
mov eax, dword [0x53e490]
cmp byte [eax + 0x318], 0
je 0x4a3999
mov eax, dword [0x53e490]
cmp byte [eax + 0x327], 0x19
jne 0x4a3999
mov eax, dword [0x53e490]
movzx eax, byte [eax + 0x328]
mov edx, dword [0x53f08c]
cmp eax, dword [edx]
je 0x4a3b44
mov eax, dword [0x53f08c]
mov eax, dword [eax]
mov edx, 1
call fcn.004a2eec
mov eax, dword [0x53f08c]
inc dword [eax]
mov eax, dword [0x53f08c]
cmp dword [eax], 2
jle 0x4a3b44
mov eax, dword [0x53f08c]
mov dword [eax], 1
jmp 0x4a3b44
mov eax, dword [0x53ef18]
mov eax, dword [eax + 0x6c]
inc eax
mov edx, dword [0x53f08c]
mov dword [edx], eax
mov eax, dword [0x53e490]
cmp byte [eax + 0x318], 0
je 0x4a3a16
mov eax, dword [0x53e490]
cmp byte [eax + 0x327], 0x19
jne 0x4a3a16
mov eax, dword [0x53e490]
movzx eax, byte [eax + 0x328]
mov edx, dword [0x53f08c]
cmp eax, dword [edx]
je 0x4a3b44
mov eax, dword [0x53f08c]
mov eax, dword [eax]
mov edx, 1
call fcn.004a2eec
jmp 0x4a3b44
mov ebx, 1
mov eax, dword [ebp - 8]
mov ax, word [eax + 8]
cmp ax, 0x1e
je 0x4a3a44
cmp ax, 0x48
jne 0x4a3a49
mov ebx, 5
mov eax, dword [0x53e490]
cmp byte [eax + 0x318], 0
je 0x4a3a73
mov eax, dword [0x53e490]
cmp byte [eax + 0x327], 0x19
jne 0x4a3a73
mov eax, dword [0x53e490]
cmp byte [eax + 0x328], 5
je 0x4a3a84
mov edx, ebx
mov eax, 5
call fcn.004a2eec
jmp 0x4a3b44
mov eax, dword [0x53e490]
movzx eax, word [eax + 0x35c]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fdiv dword [0x4a4454]
call fcn.00402fc8
push edx
push eax
mov eax, ebx
cdq
cmp edx, dword [esp + 4]
jne 0x4a3ab9
cmp eax, dword [esp]
pop edx
pop eax
jbe 0x4a3b44
jmp 0x4a3ac1
pop edx
pop eax
jle 0x4a3b44
mov edx, ebx
mov eax, 5
call fcn.004a2eec
jmp 0x4a3b44
mov eax, dword [0x53e490]
cmp byte [eax + 0x318], 0
je 0x4a3af9
mov eax, dword [0x53e490]
cmp byte [eax + 0x327], 0x19
jne 0x4a3af9
mov eax, dword [0x53e490]
cmp byte [eax + 0x328], 3
je 0x4a3b0a
mov edx, 3
mov eax, 3
call fcn.004a2eec
jmp 0x4a3b44
mov eax, dword [0x53e490]
movzx eax, word [eax + 0x35c]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fdiv dword [0x4a4454]
call fcn.00402fc8
cmp edx, 0
jne 0x4a3b33
cmp eax, 3
jae 0x4a3b44
jmp 0x4a3b35
jge 0x4a3b44
mov edx, 3
mov eax, 3
call fcn.004a2eec
mov word [esi], 0
jmp case.0x4a3699.9
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004d56a4
mov word [esi], 0
jmp case.0x4a3699.9
mov eax, dword [0x53f218]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xc84], edx
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004d5648
mov word [esi], 0
jmp case.0x4a3699.9
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov dword [eax + 0xc84], 3
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004d5648
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov edx, 0x4a4448
mov eax, dword [ebp - 4]
call fcn.004ab4f0
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov edx, 0x4a4460
mov eax, dword [ebp - 4]
call fcn.004ab4f0
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 2
je 0x4a3c0b
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004bd3d8
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov eax, dword [ebp - 4]
call fcn.004a50dc
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a43e9
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.005297b0
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a43e9
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.00529800
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je 0x4a3ca4
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a43e9
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.005297d8
mov word [esi], 0
jmp case.0x4a3699.9
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4a43e9
test bl, 2
je case.0x4a3699.9
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x53ede4]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x53f104]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x53ed8c]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ede4]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a3d2d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53f104]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a3d2d
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ed8c]
sub eax, dword [edx]
cmp eax, 0x2710
ja 0x4a3d3a
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
je 0x4a3d47
mov eax, dword [ebp - 4]
call fcn.004a2000
jmp case.0x4a3699.9
push 0xff
lea eax, [ebp - 0x24]
push eax
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov ecx, 0xffff
mov edx, 0x4a4470
call fcn.00530c90
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je case.0x4a3699.9
mov eax, dword [0x53ec04]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne case.0x4a3699.9
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je case.0x4a3699.9
mov eax, dword [0x53ec04]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
jne case.0x4a3699.9
mov eax, dword [0x53ec04]
mov eax, dword [eax]
call fcn.005296d8
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov eax, dword [0x53e884]
cmp dword [eax], 7
jge 0x4a3df2
mov eax, dword [0x53e884]
inc dword [eax]
jmp 0x4a3dfb
mov eax, dword [0x53e884]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x53e8e4]
mov edx, dword [0x53e884]
mov edx, dword [edx]
mov ecx, dword [0x53eda4]
mov edx, dword [ecx + edx*4]
call fcn.00404d90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
mov eax, dword [eax + 0x288]
call fcn.00474664
mov eax, dword [eax + 0xc]
mov edx, dword [0x53e8e4]
mov edx, dword [edx]
call fcn.0042351c
mov edx, dword [0x53e8e4]
mov edx, dword [edx]
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
mov eax, dword [eax + 0x68]
call fcn.0042351c
mov edx, dword [0x53e8e4]
mov edx, dword [edx]
mov eax, dword [0x586858]
mov eax, dword [eax + 0x68]
call fcn.0042351c
mov eax, dword [0x586858]
call fcn.0045545c
mov eax, dword [eax + 0xc]
mov edx, dword [0x53e8e4]
mov edx, dword [edx]
call fcn.0042351c
mov ecx, 0x4a4494
mov dl, 1
mov eax, dword [0x45cb98]
call fcn.0045cc48
mov ebx, eax
test ebx, ebx
je 0x4a3ebd
mov eax, dword [0x53e8e4]
mov eax, dword [eax]
push eax
mov ecx, 0x4a44a8
mov edx, 0x4a44bc
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 4]
mov eax, ebx
call fcn.00403f0c
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je 0x4a3edf
mov eax, dword [0x53f200]
mov al, byte [eax]
xor al, 1
mov edx, dword [0x53f200]
mov byte [edx], al
jmp 0x4a3ee7
mov eax, dword [ebp - 4]
call fcn.004ac010
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 2
je case.0x4a3699.9
mov eax, dword [0x53efe4]
mov al, byte [eax]
sub al, 1
jb 0x4a3f0c
je 0x4a3f6d
jmp 0x4a400b
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a3f1e
mov eax, dword [0x53efe4]
mov byte [eax], 1
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4a400b
mov eax, dword [0x53f040]
mov byte [eax], 1
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x51
mov eax, dword [ebp - 4]
call fcn.004aa9d8
push 0xff00ff
lea eax, [ebp - 0x28]
push eax
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov ecx, 0xffffff
mov edx, 0x4a44cc
call fcn.00530c90
jmp 0x4a400b
mov eax, dword [0x53ec04]
cmp dword [eax], 0
je 0x4a3fbd
mov eax, dword [0x53efe4]
mov byte [eax], 0
mov eax, dword [0x53f18c]
mov byte [eax], 1
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x1460
mov eax, dword [ebp - 4]
call fcn.004aa9d8
push 0xff00ff
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov ecx, 0xffffff
mov edx, 0x4a44e4
call fcn.00530c90
jmp 0x4a400b
mov eax, dword [0x53efe4]
mov byte [eax], 0
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4a400b
mov eax, dword [0x53f040]
mov byte [eax], 1
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x51
mov eax, dword [ebp - 4]
call fcn.004aa9d8
push 0xff00ff
lea eax, [ebp - 0x30]
push eax
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov ecx, 0xffffff
mov edx, 0x4a44cc
call fcn.00530c90
mov word [esi], 0
jmp case.0x4a3699.9
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4a43e9
test bl, 2
je case.0x4a3699.9
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x53ede4]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x53f104]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
add eax, 0x2711
mov edx, dword [0x53ed8c]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ede4]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a409e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53f104]
sub eax, dword [edx]
cmp eax, 0x2710
jbe 0x4a409e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53ed8c]
sub eax, dword [edx]
cmp eax, 0x2710
ja 0x4a40ab
mov eax, dword [0x53e6d8]
mov eax, dword [eax]
cmp byte [eax + 0x30], 0
je 0x4a40b8
mov eax, dword [ebp - 4]
call fcn.004a1fb0
jmp case.0x4a3699.9
push 0xff
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov ecx, 0xffff
mov edx, 0x4a4470
call fcn.00530c90
jmp case.0x4a3699.9
mov eax, dword [0x53eb50]
cmp byte [eax], 0
jne 0x4a411e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e4d0]
cmp eax, dword [edx]
jbe 0x4a4142
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x53e4d0]
mov dword [edx], eax
mov eax, dword [0x586858]
call fcn.004ad410
mov eax, dword [0x53e484]
mov dword [eax], 1
jmp 0x4a4142
mov eax, dword [0x53e484]
cmp dword [eax], 3
jl 0x4a413b
mov eax, dword [0x53e484]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x53eb50]
mov byte [eax], 0
jmp 0x4a4142
mov eax, dword [0x53e484]
inc dword [eax]
mov edx, dword [0x53eb50]
mov dl, byte [edx]
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
call fcn.0047d810
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
cmp byte [eax + 0x2a8], 0
jne 0x4a41a5
mov edx, dword [0x53f218]
mov edx, dword [edx]
mov edx, dword [edx + 0x870]
mov edx, dword [edx + 0x48]
mov ecx, dword [0x53f218]
call fcn.0043b0a8
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x698]
mov edx, 0x78
call fcn.0043b0cc
mov word [esi], 0
jmp case.0x4a3699.9
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e4d0]
cmp eax, dword [edx]
jbe case.0x4a3699.9
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x53e4d0]
mov dword [edx], eax
mov eax, dword [0x586858]
call fcn.004ad478
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je 0x4a4257
mov eax, dword [0x53e830]
cmp dword [eax], 0
je 0x4a422d
mov eax, dword [0x53eeec]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x4a421b
mov eax, dword [0x53e830]
mov eax, dword [eax]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 4]
call fcn.004ad36c
jmp 0x4a422d
mov eax, dword [0x53e830]
mov eax, dword [eax]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 4]
call fcn.004adcf0
lea eax, [ebp - 0x38]
mov edx, dword [0x53e830]
mov edx, dword [edx]
mov edx, dword [edx + 0x38]
call fcn.0040562c
mov edx, dword [ebp - 0x38]
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x82c]
call fcn.00482fb4
jmp 0x4a42ca
test bl, 2
je 0x4a427a
mov eax, dword [0x53e830]
cmp dword [eax], 0
je 0x4a42ca
mov eax, dword [0x53e830]
mov eax, dword [eax]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 4]
call fcn.004add94
jmp 0x4a42ca
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x484]
cmp byte [eax + 0x2a8], 0
je 0x4a429f
mov edx, dword [0x53f218]
xor edx, edx
call fcn.0047d810
jmp 0x4a42ca
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x53e4d0]
cmp eax, dword [edx]
jbe 0x4a42ca
call sub.kernel32.dll_GetTickCount_1
add eax, 0xbb8
mov edx, dword [0x53e4d0]
mov dword [edx], eax
mov eax, dword [0x586858]
call fcn.004ad548
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 2
je 0x4a42fc
mov eax, dword [0x53eb20]
cmp dword [eax + 0xd8], 0
je 0x4a4308
push 0
push 1
push 0
mov eax, dword [0x53eb20]
mov eax, dword [eax + 0xd8]
call eax
jmp 0x4a4308
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004e3a38
mov word [esi], 0
jmp case.0x4a3699.9
mov eax, dword [0x53f218]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xc84], edx
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004d5648
mov word [esi], 0
jmp case.0x4a3699.9
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004d56a4
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je 0x4a4353
mov eax, dword [ebp - 4]
call fcn.004aa924
jmp 0x4a435f
mov eax, dword [0x53f218]
mov eax, dword [eax]
call fcn.004d5968
mov word [esi], 0
jmp case.0x4a3699.9
test bl, 4
je case.0x4a3699.9
mov eax, dword [0x53f0cc]
mov eax, dword [eax]
mov dl, byte [eax + 0x18]
xor dl, 1
mov eax, dword [0x53f0cc]
mov eax, dword [eax]
call fcn.0050781c
mov eax, dword [0x53f218]
mov eax, dword [eax]
mov eax, dword [eax + 0x8f4]
mov dx, word [esi]
sub dx, 0x21
je 0x4a43bb
dec dx
je 0x4a43d3
sub dx, 4
je 0x4a43ad
sub dx, 2
je 0x4a43b4
jmp 0x4a43e9
call fcn.00485324
jmp 0x4a43e9
call fcn.00485168
jmp 0x4a43e9
mov edx, dword [eax + 0x2e4]
mov ecx, dword [eax + 0x2d8]
lea ecx, [ecx + ecx*8]
sub edx, ecx
call fcn.00484da4
jmp 0x4a43e9
mov edx, dword [eax + 0x2e4]
mov ecx, dword [eax + 0x2d8]
lea ecx, [ecx + ecx*8]
add edx, ecx
call fcn.00484da4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a4433
lea eax, [ebp - 0x38]
call fcn.00405494
lea eax, [ebp - 0x34]
mov edx, 5
call fcn.00404d60
lea eax, [ebp - 0x1c]
call fcn.00404d3c
lea eax, [ebp - 0x18]
call fcn.00405494
lea eax, [ebp - 0x14]
call fcn.00404d3c
lea eax, [ebp - 0x10]
call fcn.00405494
ret