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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fad69
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2b0
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0x118]
mov dword [ebp - 0x10], esp
test eax, eax
mov dword [ebp - 0x3c], ebx
jne 0x4a4748
mov eax, 0x4fdc00
push eax
mov ecx, ebx
call fcn.004a8020
mov ecx, eax
call fcn.0049ac80
test eax, eax
jne 0x4a477a
mov ecx, ebx
call fcn.004a34f0
mov ecx, ebx
call fcn.004a2f50
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x3f
xor eax, eax
lea edi, [ebp - 0x2bb]
mov byte [ebp - 0x2bc], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 0x128]
mov edx, dword [ebx + 0x14c]
xor ecx, ecx
cmp edx, eax
mov dl, byte [ebp - 0x11]
push 0
sete cl
mov edi, ecx
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], dl
call fcn.00403b70
mov al, byte [ebp - 0x11]
push 0
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0
mov byte [ebp - 0x24], al
call fcn.00403b70
mov edx, dword [ebx + 0x9c]
lea ecx, [ebx + 0x9c]
mov byte [ebp - 4], 2
call dword [edx + 4]
test eax, eax
je 0x4a47fc
mov eax, dword [ebx + 0xec]
test eax, eax
je 0x4a5056
mov edx, dword [ebx + 0x12c]
mov eax, dword [ebx + 0x14c]
cmp eax, edx
jne 0x4a48e3
mov eax, dword [ebx + 0xec]
test eax, eax
je 0x4a48c1
mov eax, dword [ebx + 0x128]
cmp eax, edx
je 0x4a4849
cmp dword [eax], 0
je 0x4a4832
add eax, 0x24
jmp 0x4a4824
cmp eax, edx
je 0x4a4849
push 0x49f530
lea ecx, [eax + 0x24]
push eax
push edx
push ecx
call fcn.004a28a0
add esp, 0x10
mov esi, dword [ebx + 0x12c]
mov edi, eax
mov ecx, esi
mov dword [ebp - 0x28], ecx
cmp esi, dword [ebp - 0x28]
je 0x4a486b
push esi
mov ecx, edi
call fcn.00461940
add edi, 0x24
add esi, 0x24
jmp 0x4a4856
mov eax, dword [ebx + 0x12c]
lea esi, [ebx + 0x124]
push eax
push edi
mov ecx, esi
call fcn.00410f40
mov dword [esi + 8], edi
mov ecx, ebx
mov dword [ebx + 0x70], 0x50c
call fcn.004a3e40
push 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00403b70
mov dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x38]
call fcn.00403b70
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.004a32c0
mov ecx, dword [ebx + 0x10]
push 0
push 0
push 0x50a
push ebx
call fcn.004971d0
mov ecx, ebx
call fcn.004a2f50
jmp 0x4a4891
test edi, edi
je 0x4a48ee
mov ecx, ebx
call fcn.004a32c0
mov eax, dword [ebx + 0x14c]
xor edx, edx
lea ecx, [ebx + 0x104]
mov esi, dword [eax]
mov eax, dword [0x4fdbfc]
test esi, esi
push eax
push 0
setne dl
push ecx
lea ecx, [ebp - 0x38]
mov esi, edx
call fcn.004051a0
mov eax, dword [ebx + 0x14c]
add eax, 4
mov eax, dword [eax + 4]
test eax, eax
jne 0x4a492b
mov eax, 0x4fdc00
lea edx, [ebp - 0x38]
push eax
push edx
call fcn.00460a00
mov ecx, dword [0x4fdbfc]
add esp, 8
lea eax, [ebx + 0x114]
push ecx
push 0
push eax
lea ecx, [ebp - 0x24]
call fcn.004051a0
mov eax, dword [ebx + 0x14c]
test esi, esi
je 0x4a4a20
add eax, 4
mov eax, dword [eax + 4]
test eax, eax
jne 0x4a496d
mov eax, 0x4fdc00
lea edx, [ebp - 0x24]
push eax
push edx
call fcn.00460a00
mov eax, dword [ebp - 0x20]
add esp, 8
test eax, eax
jne 0x4a4986
mov eax, 0x4fdc00
push eax
mov ecx, ebx
call fcn.004a8180
test eax, eax
jne 0x4a49f6
call dword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
lea eax, [ebp - 0x17c]
push esi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
test eax, eax
jne 0x4a49b6
mov eax, 0x4fdc00
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jne 0x4a49c2
mov ecx, 0x4fdc00
push eax
push ecx
lea ecx, [ebp - 0x2bc]
push str.Path__s_cannot_be_created._n_s
push ecx
call fcn.004c335e
add esp, 0x10
lea ecx, [ebp - 0x17c]
push 1
call fcn.00403b70
lea edx, [ebp - 0x50]
push 0x50f0d8
push edx
mov dword [ebp - 0x50], esi
call fcn.004c3605
mov ecx, dword [ebx + 0x14c]
push 1
add ecx, 0x24
mov byte [ebp - 4], 0
mov dword [ebx + 0x14c], ecx
lea ecx, [ebp - 0x24]
call fcn.00403b70
or esi, 0xffffffff
push 1
mov dword [ebp - 4], esi
jmp 0x4a4c59
add eax, 4
mov esi, 0x4fdc00
mov eax, dword [eax + 4]
test eax, eax
je 0x4a4a31
mov esi, eax
mov al, byte [ebp - 0x11]
push 0
lea ecx, [ebp - 0xf4]
mov byte [ebp - 0xf4], al
call fcn.00403b70
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [ebp - 0xf4]
call fcn.004053a0
lea ecx, [ebp - 0xf4]
lea eax, [ebx + 0x114]
push ecx
lea edx, [ebp - 0x1bc]
push eax
push edx
mov byte [ebp - 4], 3
call fcn.004601b0
add esp, 0xc
mov ecx, dword [0x4fdbfc]
xor esi, esi
push ecx
push esi
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 4
call fcn.004051a0
push 1
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 3
call fcn.00403b70
push 1
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 2
call fcn.00403b70
mov dl, byte [ebp - 0x11]
push esi
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0xc0], dl
call fcn.00403b70
mov edi, 0x536ec0
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp - 4], 5
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x536ec0
lea ecx, [ebp - 0xc0]
call fcn.004053a0
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xa8], esi
mov byte [ebp - 4], 6
mov edi, 1
mov eax, dword [ebp - 0x20]
cmp eax, esi
jne 0x4a4b20
mov eax, 0x4fdc00
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.00460f60
add esp, 8
cmp eax, esi
jne case.0x4a4c19.5
mov ecx, ebx
call fcn.004a46f0
cmp eax, esi
jne case.0x4a4c19.3
mov ecx, ebx
call fcn.004a4700
test eax, eax
jne case.0x4a4c19.5
cmp dword [ebx + 0xfc], esi
jne 0x4a4bff
mov ecx, ebx
call fcn.004a32c0
lea ecx, [ebp - 0x148]
call fcn.00464470
lea edx, [ebp - 0xc4]
lea eax, [ebp - 0x148]
push edx
push eax
mov byte [ebp - 4], 7
call fcn.00461c50
mov ecx, dword [ebx + 0x14c]
add esp, 8
lea edx, [ebp - 0x148]
push ecx
push edx
call fcn.00461c50
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x138]
add esp, 8
push eax
push ecx
mov ecx, dword [ebx + 0x10]
push 0x511
push ebx
call fcn.004971d0
lea ecx, [ebp - 0x148]
mov dword [ebx + 0xfc], edi
mov byte [ebp - 4], 6
call fcn.004644e0
push edi
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.00403b70
push edi
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00403b70
mov dword [ebp - 4], 0xffffffff
push edi
jmp 0x4a48a8
mov eax, dword [ebx + 0x100]
mov dword [ebx + 0xfc], esi
add eax, 0xfffffffd
mov dword [ebx + 0x100], esi
cmp eax, 4
ja case.0x4a4c19.5
jmp dword [eax*4 + 0x4a558c]
mov dword [ebx + 0xf0], edi
mov ecx, dword [ebx + 0x14c]
push edi
add ecx, 0x24
mov byte [ebp - 4], 2
mov dword [ebx + 0x14c], ecx
lea ecx, [ebp - 0xc0]
call fcn.00403b70
push edi
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00403b70
or esi, 0xffffffff
push edi
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x38]
call fcn.00403b70
mov dword [ebp - 4], esi
jmp 0x4a479b
mov dword [ebx + 0xf4], edi
cmp dword [ebx + 0xec], esi
jne 0x4a4e65
mov eax, dword [ebp - 0x34]
cmp eax, esi
jne 0x4a4c87
mov eax, 0x4fdc00
push 3
lea esi, [ebx + 0x9c]
push 0x21
push eax
push esi
mov ecx, ebx
call fcn.004a8270
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
test eax, eax
jne 0x4a4dcc
call dword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
lea eax, [ebp - 0x19c]
push esi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
test eax, eax
jne 0x4a4ccd
mov eax, 0x4fdc00
mov ecx, dword [ebp - 0x34]
test ecx, ecx
jne 0x4a4cd9
mov ecx, 0x4fdc00
push eax
push ecx
lea ecx, [ebp - 0x2bc]
push str.Cannot_read__s._n_s
push ecx
call fcn.004c335e
add esp, 0x10
lea ecx, [ebp - 0x19c]
push 1
call fcn.00403b70
lea edx, [ebp - 0x5c]
push 0x50f0d8
push edx
mov dword [ebp - 0x5c], esi
call fcn.004c3605
mov eax, dword [ebp - 0x20]
cmp eax, esi
jne 0x4a4d19
mov eax, 0x4fdc00
lea edx, [ebp - 0x15c]
push eax
push edx
call fcn.004612d0
add esp, 8
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x154]
mov edi, dword [0x4fdbfc]
mov esi, eax
sub esi, edx
mov byte [ebp - 4], 8
cmp eax, esi
jae 0x4a4d49
call fcn.004d1a52
lea ecx, [ebp - 0x24]
call fcn.00405570
mov eax, dword [ebp - 0x1c]
sub eax, esi
cmp eax, edi
jae 0x4a4d5c
mov edi, eax
test edi, edi
jbe 0x4a4d93
mov ecx, dword [ebp - 0x20]
sub eax, edi
add ecx, esi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call fcn.004c3020
mov esi, dword [ebp - 0x1c]
add esp, 0xc
sub esi, edi
lea ecx, [ebp - 0x24]
push 0
push esi
call fcn.00403be0
test al, al
je 0x4a4d93
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], esi
mov byte [edx + esi], 0
mov eax, dword [ebx + 0x90]
test eax, eax
jne 0x4a4da2
mov eax, 0x4fdc00
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00460a00
add esp, 8
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 6
push 1
call fcn.00403b70
mov edi, 1
xor esi, esi
jmp 0x4a4b14
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x4a4dd8
mov eax, 0x4fdc00
push 0
lea edi, [ebx + 0xc4]
push 0x22
push eax
push edi
mov ecx, ebx
call fcn.004a8270
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test eax, eax
jne 0x4a5037
call dword [sym.imp.kernel32.dll_GetLastError]
mov edx, dword [esi]
mov ecx, esi
mov edi, eax
call dword [edx + 8]
lea eax, [ebp - 0x16c]
push edi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
test eax, eax
jne 0x4a4e25
mov eax, 0x4fdc00
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jne 0x4a4e31
mov ecx, 0x4fdc00
push eax
push ecx
lea ecx, [ebp - 0x2bc]
push str.Cannot_open__s_for_writing._n_s
push ecx
call fcn.004c335e
add esp, 0x10
lea ecx, [ebp - 0x16c]
push 1
call fcn.00403b70
lea edx, [ebp - 0x58]
push 0x50f0d8
push edx
mov dword [ebp - 0x58], edi
call fcn.004c3605
mov al, byte [ebp - 0x11]
push esi
lea ecx, [ebp - 0x114]
mov byte [ebp - 0x114], al
call fcn.00403b70
mov edi, 0x536ec0
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp - 4], 9
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x536ec0
lea ecx, [ebp - 0x114]
call fcn.004053a0
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xfc], esi
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0xa
cmp eax, esi
jne 0x4a4ec6
mov eax, 0x4fdc00
lea ecx, [ebp - 0x118]
push ecx
push eax
call fcn.00460f60
add esp, 8
cmp eax, esi
jne 0x4a4f63
lea edx, [ebp - 0x118]
mov ecx, ebx
push edx
call fcn.004a8110
cmp eax, esi
jne 0x4a4f63
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
lea eax, [ebp - 0x18c]
push edi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, esi
mov edx, 0x4fdc00
je 0x4a4f16
mov edx, eax
mov ecx, dword [ebp - 0x20]
cmp ecx, esi
jne 0x4a4f22
mov ecx, 0x4fdc00
mov eax, dword [ebp - 0x34]
cmp eax, esi
jne 0x4a4f2e
mov eax, 0x4fdc00
push edx
push ecx
push eax
lea ecx, [ebp - 0x2bc]
push str.Failed_to_move__s_to__s_Target_file_already_exists_and_can_not_be_deleted._n_s
push ecx
call fcn.004c335e
add esp, 0x14
lea ecx, [ebp - 0x18c]
push 1
call fcn.00403b70
lea edx, [ebp - 0x40]
push 0x50f0d8
push edx
mov dword [ebp - 0x40], edi
call fcn.004c3605
mov ecx, dword [ebp - 0x20]
cmp ecx, esi
jne 0x4a4f6f
mov ecx, 0x4fdc00
mov eax, dword [ebp - 0x34]
cmp eax, esi
jne 0x4a4f7b
mov eax, 0x4fdc00
push ecx
push eax
mov ecx, ebx
call fcn.004a8230
cmp eax, esi
jne 0x4a4ffb
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
lea eax, [ebp - 0x1ac]
push edi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
add esp, 8
cmp eax, esi
mov edx, 0x4fdc00
je 0x4a4fae
mov edx, eax
mov ecx, dword [ebp - 0x20]
cmp ecx, esi
jne 0x4a4fba
mov ecx, 0x4fdc00
mov eax, dword [ebp - 0x34]
cmp eax, esi
jne 0x4a4fc6
mov eax, 0x4fdc00
push edx
push ecx
push eax
lea ecx, [ebp - 0x2bc]
push str.Failed_to_move__s_to__s._n_s
push ecx
call fcn.004c335e
add esp, 0x14
lea ecx, [ebp - 0x1ac]
push 1
call fcn.00403b70
lea edx, [ebp - 0x4c]
push 0x50f0d8
push edx
mov dword [ebp - 0x4c], edi
call fcn.004c3605
mov eax, dword [ebp - 0x20]
cmp eax, esi
jne 0x4a5007
mov eax, 0x4fdc00
mov ecx, dword [ebp - 0x104]
push ecx
push eax
call fcn.00461710
mov ecx, dword [ebx + 0x14c]
add esp, 8
add ecx, 0x24
mov byte [ebp - 4], 6
mov dword [ebx + 0x14c], ecx
push 1
lea ecx, [ebp - 0x114]
call fcn.00403b70
push 1
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.00403b70
mov eax, dword [ebx + 0xec]
test eax, eax
jne 0x4a5468
mov edx, dword [ebx + 0x9c]
lea ecx, [ebx + 0x9c]
call dword [edx + 4]
test eax, eax
je 0x4a5468
lea ecx, [ebp - 0x130]
call fcn.00464470
push 0x20000
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 0xb
call fcn.00464590
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x12c]
push eax
lea edi, [ebx + 0x9c]
push ecx
push edi
mov ecx, ebx
call fcn.004a82f0
mov edx, dword [edi]
mov ecx, edi
mov dword [ebp - 0x28], eax
call dword [edx + 0x18]
test eax, eax
je 0x4a5164
call dword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov edx, dword [ebx + 0xc4]
add ebx, 0xc4
mov ecx, ebx
call dword [edx + 8]
lea eax, [ebp - 0xd4]
push esi
push eax
call fcn.00461090
mov eax, dword [eax + 4]
xor edi, edi
add esp, 8
cmp eax, edi
mov ecx, 0x4fdc00
je 0x4a50fa
mov ecx, eax
mov eax, dword [ebp - 0x34]
cmp eax, edi
jne 0x4a5106
mov eax, 0x4fdc00
push ecx
push eax
lea ecx, [ebp - 0x2bc]
push str.Cannot_read__s._n_s
push ecx
call fcn.004c335e
mov ecx, dword [ebp - 0xd0]
add esp, 0x10
cmp ecx, edi
je 0x4a5141
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x4a5138
cmp al, 0xff
je 0x4a5138
dec al
mov byte [ecx], al
jmp 0x4a5141
push ecx
call fcn.004dae3e
add esp, 4
lea edx, [ebp - 0x54]
push 0x50f0d8
push edx
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0x54], esi
call fcn.004c3605
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x12c]
lea esi, [ebx + 0xc4]
push eax
push ecx
push esi
mov ecx, ebx
call fcn.004a8370
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x18]
test eax, eax
je 0x4a522e
call dword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 8]
lea eax, [ebp - 0xe4]
push ebx
push eax
call fcn.00461090
mov eax, dword [eax + 4]
xor esi, esi
add esp, 8
cmp eax, esi
mov ecx, 0x4fdc00
je 0x4a51c2
mov ecx, eax
mov eax, dword [ebp - 0x20]
cmp eax, esi
jne 0x4a51ce
mov eax, 0x4fdc00
push ecx
push eax
lea ecx, [ebp - 0x2bc]
push str.Cannot_write__s._n_s
push ecx
call fcn.004c335e
mov eax, dword [ebp - 0xe0]
add esp, 0x10
cmp eax, esi
je 0x4a520b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a5202
cmp al, 0xff
je 0x4a5202
dec al
mov byte [ecx], al
jmp 0x4a520b
push ecx
call fcn.004dae3e
add esp, 4
lea edx, [ebp - 0x44]
push 0x50f0d8
push edx
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0x44], ebx
call fcn.004c3605
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1c]
test eax, eax
je 0x4a53cc
mov ecx, dword [ebx + 0x14c]
add ecx, 0x24
mov dword [ebx + 0x14c], ecx
lea ecx, [ebp - 0x90]
push ecx
mov ecx, edi
call fcn.00415940
lea edx, [ebp - 0xa0]
mov ecx, esi
push edx
mov byte [ebp - 4], 0xc
call fcn.00415940
mov al, byte [ebp - 0x11]
xor esi, esi
push esi
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0xd
mov byte [ebp - 0x7c], al
call fcn.00403b70
mov edi, 0x536ec0
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x28], ecx
push ecx
lea ecx, [ebp - 0x7c]
call fcn.00403be0
test al, al
je 0x4a52cd
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x78]
mov ecx, eax
mov esi, 0x536ec0
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x74], eax
xor esi, esi
mov byte [eax + ecx], 0
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x64], esi
mov eax, dword [ebp - 0x8c]
mov byte [ebp - 4], 0xf
cmp eax, esi
jne 0x4a52ec
mov eax, 0x4fdc00
lea edx, [ebp - 0x80]
push edx
push eax
call fcn.00460f60
mov eax, dword [ebx + 0x9c]
lea ecx, [ebx + 0x9c]
add esp, 8
call dword [eax + 8]
mov edx, dword [ebx + 0xc4]
lea ecx, [ebx + 0xc4]
call dword [edx + 8]
mov eax, dword [ebp - 0x9c]
cmp eax, esi
jne 0x4a5326
mov eax, 0x4fdc00
mov ecx, dword [ebp - 0x6c]
push ecx
push eax
call fcn.00461710
mov ecx, dword [ebp - 0x78]
add esp, 8
cmp ecx, esi
je 0x4a5355
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x4a534c
cmp al, 0xff
je 0x4a534c
dec al
mov byte [ecx], al
jmp 0x4a5355
push ecx
call fcn.004dae3e
add esp, 4
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x78], esi
cmp ecx, esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
je 0x4a5383
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x4a537a
cmp al, 0xff
je 0x4a537a
dec al
mov byte [ecx], al
jmp 0x4a5383
push ecx
call fcn.004dae3e
add esp, 4
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x9c], esi
cmp ecx, esi
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], esi
je 0x4a53ba
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x4a53b1
cmp al, 0xff
je 0x4a53b1
dec al
mov byte [ecx], al
jmp 0x4a53ba
push ecx
call fcn.004dae3e
add esp, 4
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x84], esi
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 2
call fcn.004644e0
jmp 0x4a5468
mov esi, dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebp - 4], 1
call esi
sub eax, dword [ebp - 0x48]
cmp eax, 0x64
jbe 0x4a5522
mov ecx, ebx
call fcn.004a32c0
mov eax, fcn.004a4710
xor ecx, ecx
xor edi, edi
mov dword [ebx + 0x60], eax
mov dword [ebx + 0x64], ecx
mov dword [ebx + 0x38], edi
call esi
add eax, 0x64
cmp eax, edi
mov dword [ebx + 0x3c], eax
jne 0x4a54af
mov dword [ebx + 0x3c], 1
mov ecx, dword [ebp - 0x20]
cmp ecx, edi
je 0x4a54d2
mov al, byte [ecx - 1]
test al, al
je 0x4a54c8
cmp al, 0xff
je 0x4a54c8
dec al
mov byte [ecx - 1], al
jmp 0x4a54d2
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
cmp ecx, edi
je 0x4a48b0
mov al, byte [ecx - 1]
test al, al
je 0x4a5507
cmp al, 0xff
je 0x4a5507
dec al
mov byte [ecx - 1], al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
dec ecx
push ecx
call fcn.004dae3e
mov ecx, dword [ebp - 0xc]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x20]
xor esi, esi
cmp eax, esi
je 0x4a5548
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a553f
cmp al, 0xff
je 0x4a553f
dec al
mov byte [ecx], al
jmp 0x4a5548
push ecx
call fcn.004dae3e
add esp, 4
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x20], esi
cmp ecx, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0xffffffff
je 0x4a557b
mov al, byte [ecx - 1]
test al, al
je 0x4a5571
cmp al, 0xff
je 0x4a5571
dec al
mov byte [ecx - 1], al
jmp 0x4a557b
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
jmp 0x4a479b