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

Disassembly:
mov eax, 0x54a13d
call fcn.0054565c
sub esp, 0x1c4
push ebx
push esi
push edi
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 6
ja 0x4e4073
lds ebp, [edx]
xchg ecx, eax
push es
pop ebx
xor eax, 0x6ae3904a
and dword [esi - 0x44fec957], 0xb1192eec
invalid
mov edi, dword [ebp + 0x20]
xor ecx, ecx
mov dword [edi], ecx
mov dword [edi + 4], ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xac], 4
mov dword [ebp - 0xbc], vtable.CObjectVector_struct_CFieldInfo_.0
mov dword [ebp - 4], ecx
cmp byte [ebp + 0x1c], cl
jne 0x4e40ba
push ecx
push ecx
lea ecx, [ebp - 0xbc]
call int.004e388f
xor ecx, ecx
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov ebx, dword [eax + 8]
movlpd qword [ebp - 0x40], xmm0
movlpd qword [ebp - 0x58], xmm0
movlpd qword [ebp - 0x98], xmm0
movlpd qword [ebp - 0xa0], xmm0
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x64], ecx
test ebx, ebx
jle 0x4e49ff
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x58]
mov esi, 0x80004004
mov dword [ebp - 0x4c], edx
cmp byte [ebp + 8], 0
mov eax, dword [eax + 0xc]
xorps xmm0, xmm0
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0x20], ebx
movlpd qword [ebp - 0xf8], xmm0
jne 0x4e41d2
lea ecx, [ebp - 0x1a8]
call fcn.0040eb91
mov byte [ebp - 4], 1
push dword [ebx]
lea ecx, [ebp - 0x1d0]
call fcn.0050727b
test al, al
je 0x4e4182
mov eax, dword [ebp - 0x1b0]
shr eax, 4
test al, 1
jne 0x4e4182
mov eax, dword [ebp - 0x1d0]
push dword [ebp - 0x1a8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x7c], eax
call fcn.00418a9a
pop ecx
jmp 0x4e41e4
push ecx
push str._is_not_file
push dword [ebx]
push str.Error:
push ecx
mov ecx, 0x578890
call fcn.004b9422
mov ecx, eax
call fcn.004b9adc
mov ecx, eax
call fcn.004b8f06
mov ecx, eax
call fcn.004b9adc
mov ecx, eax
call fcn.004b9422
add dword [edi], 1
adc dword [edi + 4], 0
mov byte [ebp - 4], 0
push dword [ebp - 0x1a8]
call fcn.00418a9a
pop ecx
jmp 0x4e4994
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x5c], eax
lea ecx, [ebp - 0x170]
call fcn.00411614
lea eax, [ebp - 0x110]
push eax
push ebx
push ecx
push dword [ebp + 8]
mov byte [ebp - 4], 2
push dword [ebp - 0xd0]
lea ecx, [ebp - 0x170]
push dword [ebp - 0xcc]
mov dword [ebp - fcn.004d7cd9], 0x55cb08
mov dword [ebp - 0x10c], 0x578890
call fcn.00516377
mov edi, eax
test edi, edi
je 0x4e42dc
cmp edi, esi
je 0x4e49eb
push 0x558318
push dword [ebx]
mov ebx, 0x578890
push str.Error:
push ecx
mov ecx, ebx
call fcn.004b9422
mov ecx, eax
call fcn.004b9adc
mov ecx, eax
call fcn.004b8f06
mov ecx, eax
call fcn.004b9adc
cmp edi, 1
jne 0x4e4276
push str.Can_not_open_file_as_archive
jmp 0x4e4283
cmp edi, 0x8007000e
jne 0x4e428c
push str.Cant_allocate_required_memory
mov ecx, ebx
call fcn.004b9adc
jmp 0x4e42b6
mov edx, edi
lea ecx, [ebp - 0x188]
call fcn.0040e537
mov byte [ebp - 4], 3
push dword [eax]
mov ecx, ebx
call fcn.004b8f06
mov byte [ebp - 4], 2
push dword [ebp - 0x188]
call fcn.00418a9a
pop ecx
push ecx
mov ecx, ebx
call fcn.004b9422
mov edi, dword [ebp + 0x20]
lea ecx, [ebp - 0x170]
add dword [edi], 1
adc dword [edi + 4], 0
mov byte [ebp - 4], 0
call fcn.0041164a
jmp 0x4e4994
cmp byte [ebp + 8], 0
jne 0x4e433f
xor edi, edi
cmp dword [ebp - 0x154], edi
jle 0x4e433f
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x150]
mov ecx, dword [ebp + 0x10]
push dword [eax + edi*4]
call fcn.004121ff
mov ebx, eax
test ebx, ebx
js 0x4e432e
cmp ebx, esi
jle 0x4e432e
mov eax, dword [ebp + 0xc]
push 1
mov edx, dword [eax]
push ebx
mov ecx, eax
call dword [edx + 4]
mov ecx, dword [ebp + 0x10]
push 1
mov eax, dword [ecx]
push ebx
call dword [eax + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x8c], eax
inc edi
cmp edi, dword [ebp - 0x154]
jl 0x4e42ef
mov ebx, dword [ebp - 0x20]
mov esi, 0x80004004
cmp byte [ebp + 0x18], 0
je 0x4e464b
push ecx
push ecx
push dword [ebx]
mov ebx, 0x578890
push str.Listing_archive:
push ecx
mov ecx, ebx
call fcn.004b9422
mov ecx, eax
call fcn.004b9adc
mov ecx, eax
call fcn.004b8f06
mov ecx, eax
call fcn.004b9422
mov ecx, eax
call fcn.004b9422
xor edi, edi
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0x168], edi
jle 0x4e4609
mov eax, dword [ebp - 0x164]
push 0x55df7c
mov edi, dword [eax + edi*4]
mov ecx, ebx
call fcn.004b9adc
mov edx, dword [edi + 4]
mov ecx, str.Path
call fcn.004e1ca5
mov eax, dword [ebp - 0xcc]
mov ecx, dword [edi + 0x1c]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ecx*4]
mov ecx, str.Type
mov edx, dword [eax + 0xc]
call fcn.004e1ca5
cmp dword [edi + 0x34], 0
je 0x4e43dd
mov edx, dword [edi + 0x30]
mov ecx, str.Error
call fcn.004e1ca5
mov edi, dword [edi]
lea ecx, [ebp - 0xc8]
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x2c]
test eax, eax
jne 0x4e44ce
xor ebx, ebx
cmp dword [ebp - 0xc8], ebx
jbe 0x4e44ce
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0xec]
push ecx
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x10]
push ecx
mov byte [ebp - 4], 4
mov eax, dword [edi]
push ebx
push edi
call dword [eax + 0x30]
test eax, eax
jne 0x4e49bc
mov dword [ebp - 0x108], eax
lea ecx, [ebp - 0x108]
push ecx
mov byte [ebp - 4], 5
push dword [ebp - 0x70]
mov eax, dword [edi]
push edi
call dword [eax + 0x20]
test eax, eax
jne 0x4e49ad
push ecx
push dword [ebp - 0x70]
lea edx, [ebp - 0x108]
lea ecx, [ebp - 0x12c]
call fcn.0051ea20
pop ecx
pop ecx
mov byte [ebp - 4], 6
cmp dword [ebp - 0x128], 0
je 0x4e449d
push dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
lea ecx, [ebp - 0x194]
call fcn.004e362a
pop ecx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x12c]
mov ecx, dword [eax]
call fcn.004e1ca5
push dword [ebp - 0x194]
call fcn.00418a9a
pop ecx
push dword [ebp - 0x12c]
call fcn.00418a9a
pop ecx
lea ecx, [ebp - 0x108]
call fcn.004f350d
mov byte [ebp - 4], 2
push dword [ebp - 0x10]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc ebx
cmp ebx, dword [ebp - 0xc8]
jb 0x4e4402
mov eax, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x14]
dec eax
cmp ebx, eax
je 0x4e45f1
push str._____n
mov ecx, 0x578890
call fcn.004b9adc
mov eax, dword [edi]
lea ecx, [ebp - 0xa8]
push ecx
push edi
call dword [eax + 0x24]
test eax, eax
jne 0x4e45f1
mov eax, dword [ebp - 0x164]
mov eax, dword [eax + ebx*4 + 4]
xor ebx, ebx
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0xa8], ebx
jbe 0x4e45f1
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0xdc]
push ecx
lea ecx, [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x10]
push ecx
mov byte [ebp - 4], 8
mov eax, dword [edi]
push ebx
push edi
call dword [eax + 0x28]
test eax, eax
jne 0x4e49bc
mov dword [ebp - 0x120], eax
lea ecx, [ebp - 0x120]
push ecx
mov byte [ebp - 4], 9
push dword [ebp - 0x60]
mov eax, dword [edi]
push dword [ebp - 0x20]
push edi
call dword [eax + 0x18]
test eax, eax
jne 0x4e49c9
push ecx
push dword [ebp - 0x60]
lea edx, [ebp - 0x120]
lea ecx, [ebp - 0x138]
call fcn.0051ea20
pop ecx
pop ecx
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x134], 0
je 0x4e45c0
push dword [ebp - 0x10]
mov edx, dword [ebp - 0x60]
lea ecx, [ebp - 0x17c]
call fcn.004e362a
pop ecx
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x138]
mov ecx, dword [eax]
call fcn.004e1ca5
push dword [ebp - 0x17c]
call fcn.00418a9a
pop ecx
push dword [ebp - 0x138]
call fcn.00418a9a
pop ecx
lea ecx, [ebp - 0x120]
call fcn.004f350d
mov byte [ebp - 4], 2
push dword [ebp - 0x10]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc ebx
cmp ebx, dword [ebp - 0xa8]
jb 0x4e4522
mov edi, dword [ebp - 0x14]
inc edi
mov dword [ebp - 0x14], edi
mov ebx, 0x578890
cmp edi, dword [ebp - 0x168]
jl 0x4e438c
push ecx
mov ecx, ebx
call fcn.004b9422
cmp byte [ebp + 0x1c], 0
je 0x4e4625
push str.___________n
mov ecx, ebx
call fcn.004b9adc
jmp 0x4e464b
lea ecx, [ebp - 0xbc]
call int.004e30ed
push ecx
mov ecx, ebx
call fcn.004b9422
lea ecx, [ebp - 0xbc]
call fcn.004e3036
push ecx
mov ecx, ebx
call fcn.004b9422
cmp byte [ebp + 0x1c], 0
mov ecx, dword [ebp - 0x164]
mov eax, dword [ebp - 0x168]
mov eax, dword [ecx + eax*4 - 4]
mov dword [ebp - 0x20], eax
mov ebx, dword [eax]
mov dword [ebp - 0x68], ebx
je 0x4e467d
push ebx
lea ecx, [ebp - 0xbc]
call fcn.004e3338
test eax, eax
jne 0x4e49e9
xor eax, eax
and dword [ebp - 0x28], eax
xorps xmm0, xmm0
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x78], eax
mov eax, dword [ebx]
push ecx
push ebx
movlpd qword [ebp - 0x58], xmm0
movlpd qword [ebp - 0x40], xmm0
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x48], xmm0
call dword [eax + 0x14]
test eax, eax
jne 0x4e49e9
xor edi, edi
cmp dword [ebp - 0xc0], edi
jbe 0x4e4850
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
call fcn.004bb96e
test al, al
jne 0x4e49eb
xor eax, eax
push 4
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
call fcn.0040de7a
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x88]
push eax
push edi
mov byte [ebp - 4], 0xc
call fcn.00516e88
cmp byte [ebp + 8], 0
je 0x4e4727
cmp eax, 0x80070057
je 0x4e4838
test eax, eax
jne 0x4e49d1
lea eax, [ebp - 0x19]
push eax
mov edx, edi
mov ecx, ebx
call fcn.00517199
pop ecx
test eax, eax
jne 0x4e49d1
mov bl, byte [ebp - 0x19]
mov ecx, dword [ebp + 0x14]
test bl, bl
sete al
movzx eax, al
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.0050be6c
test al, al
je 0x4e4817
push dword [ebp + 0x1c]
lea ecx, [ebp - 0xbc]
push edi
push dword [ebp - 0x20]
call fcn.004e273c
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0xd8]
push eax
push 7
mov edx, edi
call fcn.004e1ee3
pop ecx
pop ecx
test al, al
jne 0x4e47a0
xorps xmm0, xmm0
movlpd qword [ebp - 0xd8], xmm0
jmp 0x4e47a6
lea eax, [ebp - 0x48]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x68]
lea eax, [ebp - 0xe8]
push eax
push 8
mov edx, edi
call fcn.004e1ee3
pop ecx
pop ecx
test al, al
jne 0x4e47cc
xorps xmm0, xmm0
movlpd qword [ebp - 0xe8], xmm0
jmp 0x4e47d2
lea eax, [ebp - 0x30]
mov dword [ebp - 0x78], eax
push ecx
mov ecx, 0x578890
call fcn.004b9422
test bl, bl
je 0x4e47eb
add dword [ebp - 0x24], 1
adc dword [ebp - 0x14], 0
jmp 0x4e47f3
add dword [ebp - 0x18], 1
adc dword [ebp - 0x10], 0
mov eax, dword [ebp - 0xe8]
add dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xe4]
adc dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xd8]
add dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xd4]
adc dword [ebp - 0x44], eax
mov byte [ebp - 4], 2
push dword [ebp - 0x88]
call fcn.00418a9a
inc edi
pop ecx
cmp edi, dword [ebp - 0xc0]
jae 0x4e4848
mov ebx, dword [ebp - 0x68]
jmp 0x4e46d7
mov byte [ebp - 4], 2
push dword [ebp - 0x88]
call fcn.00418a9a
pop ecx
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
jmp 0x4e4865
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], eax
cmp byte [ebp + 8], 0
mov ebx, dword [ebp - 0x78]
jne 0x4e48a6
test ebx, ebx
jne 0x4e48a6
cmp dword [ebp - 0x154], 0
mov edx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x7c]
je 0x4e488d
add edx, dword [ebp - 0x148]
adc ebx, dword [ebp - 0x144]
mov eax, ecx
or eax, edi
jne 0x4e489d
xorps xmm0, xmm0
movlpd qword [ebp - 0x30], xmm0
jmp 0x4e48a3
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ebx
lea ebx, [ebp - 0x30]
cmp dword [ebp - 0x28], 0
jne 0x4e48c0
mov eax, ecx
or eax, edi
jne 0x4e48c0
xorps xmm0, xmm0
lea eax, [ebp - 0x48]
movlpd qword [ebp - 0x48], xmm0
mov dword [ebp - 0x28], eax
cmp byte [ebp + 0x18], 0
je 0x4e4906
cmp byte [ebp + 0x1c], 0
jne 0x4e4906
lea ecx, [ebp - 0xbc]
call fcn.004e3036
push ecx
mov ecx, 0x578890
call fcn.004b9422
push ebx
push dword [ebp - 0x28]
lea ecx, [ebp - 0xbc]
push dword [ebp - 0x14]
push dword [ebp - 0x24]
push edi
push dword [ebp - 0x18]
call fcn.004e216b
push ecx
mov ecx, 0x578890
call fcn.004b9422
test ebx, ebx
je 0x4e4934
lea eax, [ebp - 0x98]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x94]
adc eax, dword [ebp - 0x2c]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x28], 0
je 0x4e4964
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xa0]
add eax, dword [ebp - 0x48]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x9c]
adc eax, dword [ebp - 0x44]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x170]
adc dword [ebp - 0x74], edi
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x34]
adc eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
call fcn.0041164a
mov edi, dword [ebp + 0x20]
mov ecx, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x8c]
inc ecx
mov dword [ebp - 0x64], ecx
cmp ecx, ebx
jge 0x4e49e1
mov eax, dword [ebp + 0xc]
jmp 0x4e4117
lea ecx, [ebp - 0x108]
mov esi, eax
call fcn.004f350d
jmp 0x4e49be
mov esi, eax
push dword [ebp - 0x10]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x4e49eb
lea ecx, [ebp - 0x120]
jmp 0x4e49b3
push dword [ebp - 0x88]
mov esi, eax
call fcn.00418a9a
pop ecx
jmp 0x4e49eb
mov esi, dword [ebp - 0x74]
mov edi, dword [ebp - 0x6c]
jmp 0x4e4a11
mov esi, eax
lea ecx, [ebp - 0x170]
mov byte [ebp - 4], 0
call fcn.0041164a
jmp 0x4e4a91
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x4c], eax
cmp byte [ebp + 0x18], 0
je 0x4e4a8f
cmp byte [ebp + 0x1c], 0
jne 0x4e4a8f
cmp ebx, 1
jle 0x4e4a8f
push ecx
mov ecx, 0x578890
call fcn.004b9422
lea ecx, [ebp - 0xbc]
call fcn.004e3036
push ecx
mov ecx, 0x578890
call fcn.004b9422
push dword [ebp - 0xa4]
mov edx, dword [ebp - 0x34]
push dword [ebp - 0xc4]
lea ecx, [ebp - 0xbc]
push edx
mov edx, dword [ebp - 0x4c]
push edx
push esi
push edi
call fcn.004e216b
push ecx
mov esi, 0x578890
mov ecx, esi
call fcn.004b9422
push ecx
push ecx
push ebx
push str.Archives:
mov ecx, esi
call fcn.004b9adc
mov ecx, eax
call fcn.004b8aa5
pop ecx
mov ecx, eax
call fcn.004b9422
xor esi, esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xbc]
call fcn.00412265
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret