Function at 0x426560
Capabilities:
Check if file exists
Create directory
Hide graphical window
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d3ec2
mov eax, dword fs:[0]
push eax
mov eax, 0x1030c
call fcn.004b4a40
mov eax, dword [0x50f52c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 0x101c4], ebx
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x102c8]
call fcn.004256c0
mov byte [ebp - 4], 2
push ebx
push ebx
lea ecx, [ebp - 0x102c8]
call fcn.004257f0
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp - 0x102c4]
neg eax
sbb eax, eax
and eax, 5
push eax
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [ebp - 0x102c4]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov edi, 7
push edi
xor eax, eax
push str.UTILITY
lea ecx, [ebp - 0x101e4]
mov dword [ebp - 0x101cc], edi
mov dword [ebp - 0x101d0], ebx
mov word [ebp - 0x101e0], ax
call fcn.00401860
mov byte [ebp - 4], 3
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x10130]
push str.Package_is
push edx
call fcn.00401a30
add esp, 0xc
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x101e4]
push ecx
push eax
call fcn.00419d40
mov byte [ebp - 4], 3
mov esi, 8
cmp dword [ebp - 0x10118], esi
jb 0x42665a
mov edx, dword [ebp - 0x1012c]
push edx
call fcn.004b29fa
add esp, 4
xor eax, eax
mov dword [ebp - 0x10118], edi
mov dword [ebp - 0x1011c], ebx
mov word [ebp - 0x1012c], ax
mov byte [ebp - 4], 2
cmp dword [ebp - 0x101cc], esi
jb 0x42668a
mov ecx, dword [ebp - 0x101e0]
push ecx
call fcn.004b29fa
add esp, 4
push edi
xor edx, edx
xor eax, eax
push str.UTILITY
lea ecx, [ebp - 0x1020c]
mov dword [ebp - 0x101cc], edi
mov dword [ebp - 0x101d0], ebx
mov word [ebp - 0x101e0], dx
mov dword [ebp - 0x101f4], edi
mov dword [ebp - 0x101f8], ebx
mov word [ebp - 0x10208], ax
call fcn.00401860
mov byte [ebp - 4], 5
lea ecx, [ebp + 0x24]
push ecx
lea edx, [ebp - 0x10130]
push 0x4e45a0
push edx
call fcn.00401a30
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1020c]
push ecx
push eax
call fcn.00419d40
mov byte [ebp - 4], 5
cmp dword [ebp - 0x10118], esi
jb 0x42670d
mov edx, dword [ebp - 0x1012c]
push edx
call fcn.004b29fa
add esp, 4
xor eax, eax
mov dword [ebp - 0x10118], edi
mov dword [ebp - 0x1011c], ebx
mov word [ebp - 0x1012c], ax
mov byte [ebp - 4], 2
cmp dword [ebp - 0x101f4], esi
jb 0x42673d
mov ecx, dword [ebp - 0x10208]
push ecx
call fcn.004b29fa
add esp, 4
mov eax, dword [ebp + 0xc]
xor edx, edx
mov dword [ebp - 0x101f4], edi
mov dword [ebp - 0x101f8], ebx
mov word [ebp - 0x10208], dx
cmp dword [ebp + 0x20], esi
jae 0x42675d
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x101a0]
push eax
call fcn.00425c80
mov byte [ebp - 4], 7
cmp dword [ebp - 0x10188], 0x10
mov eax, dword [ebp - 0x1019c]
jae 0x426783
lea eax, [ebp - 0x1019c]
push eax
call fcn.004ccdc0
mov esi, eax
mov dword [ebp - 0x101c8], esi
cmp esi, ebx
jne 0x426823
mov byte [ebp - 4], 2
cmp dword [ebp - 0x10188], 0x10
jb 0x4267b5
mov ecx, dword [ebp - 0x1019c]
push ecx
call fcn.004b29fa
add esp, 4
mov dword [ebp - 0x10188], 0xf
mov dword [ebp - 0x1018c], ebx
mov byte [ebp - 0x1019c], bl
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x102c8]
call fcn.00404f60
mov byte [ebp - 4], bl
mov esi, 8
cmp dword [ebp + 0x20], esi
jb 0x4267f3
mov edx, dword [ebp + 0xc]
push edx
call fcn.004b29fa
add esp, 4
xor eax, eax
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x1c], ebx
mov word [ebp + 0xc], ax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0x3c], esi
jb 0x426817
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.004b29fa
add esp, 4
xor edx, edx
mov dword [ebp + 0x3c], edi
xor eax, eax
jmp 0x4271af
push esi
mov dword [ebp - 0x101ec], 0x186a0
call fcn.004cc590
mov edi, 0xf
cmp eax, ebx
jne 0x42705b
push 0x4c
lea eax, [ebp - 0x10314]
push ebx
push eax
mov dword [ebp - 0x10318], ebx
call fcn.004b32f0
push 0x103
lea ecx, [ebp - 0x113]
push ebx
push ecx
mov byte [ebp - 0x114], bl
call fcn.004b32f0
add esp, 0x18
push ebx
push ebx
push ebx
push ebx
push 0x104
lea edx, [ebp - 0x114]
push edx
lea eax, [ebp - 0x10318]
push eax
push esi
call fcn.004cc560
test eax, eax
jne 0x426f95
lea eax, [ebp - 0x114]
mov dword [ebp - 0x101cc], edi
mov dword [ebp - 0x101d0], ebx
mov byte [ebp - 0x101e0], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4268b0
sub eax, edx
push eax
lea ecx, [ebp - 0x114]
push ecx
lea ecx, [ebp - 0x101e4]
call fcn.00402840
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x101d0]
or dword [ebp - 0x101c4], 1
push 0xc
push str.PKG_DOWNLOAD
push edx
push ebx
lea ecx, [ebp - 0x101e4]
call fcn.004252e0
test eax, eax
je 0x42695e
lea eax, [ebp - 0x114]
mov dword [ebp - 0x101f4], edi
mov dword [ebp - 0x101f8], ebx
mov byte [ebp - 0x10208], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x426910
sub eax, edx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x1020c]
call fcn.00402840
mov dword [ebp - 4], 0xc
mov ecx, dword [ebp - 0x101f8]
or dword [ebp - 0x101c4], 2
push 0xa
push str.PKG_UPDATE
push ecx
push ebx
lea ecx, [ebp - 0x1020c]
call fcn.004252e0
mov byte [ebp - 0x101bd], bl
test eax, eax
jne 0x426965
mov byte [ebp - 0x101bd], 1
mov dword [ebp - 4], 0xb
test byte [ebp - 0x101c4], 2
je 0x4269a6
and dword [ebp - 0x101c4], 0xfffffffd
cmp dword [ebp - 0x101f4], 0x10
jb 0x426994
mov edx, dword [ebp - 0x10208]
push edx
call fcn.004b29fa
add esp, 4
mov dword [ebp - 0x101f4], edi
mov dword [ebp - 0x101f8], ebx
mov byte [ebp - 0x10208], bl
mov dword [ebp - 4], 7
test byte [ebp - 0x101c4], 1
je 0x4269e7
and dword [ebp - 0x101c4], 0xfffffffe
cmp dword [ebp - 0x101cc], 0x10
jb 0x4269d5
mov eax, dword [ebp - 0x101e0]
push eax
call fcn.004b29fa
add esp, 4
mov dword [ebp - 0x101cc], edi
mov dword [ebp - 0x101d0], ebx
mov byte [ebp - 0x101e0], bl
cmp byte [ebp - 0x101bd], bl
je 0x4269fa
push esi
call fcn.004cc5e0
jmp 0x426fa9
cmp dword [ebp + 0x3c], 8
mov eax, dword [ebp + 0x28]
jae 0x426a06
lea eax, [ebp + 0x28]
push eax
lea ecx, [ebp - 0x10184]
push ecx
call fcn.00425c80
mov byte [ebp - 4], 0xd
push 0x4e459c
lea edx, [ebp - 0x10184]
push edx
lea eax, [ebp - 0x10260]
push eax
call fcn.00425f60
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x114]
push ecx
push eax
lea edx, [ebp - 0x10130]
push edx
call fcn.00425f60
add esp, 0x18
mov byte [ebp - 4], 0x10
mov esi, 0x10
cmp dword [ebp - 0x10248], esi
jb 0x426a6a
mov eax, dword [ebp - 0x1025c]
push eax
call fcn.004b29fa
add esp, 4
push 2
push 0xffffffffffffffff
push 0x4e4598
lea ecx, [ebp - 0x10130]
mov dword [ebp - 0x10248], edi
mov dword [ebp - 0x1024c], ebx
mov byte [ebp - 0x1025c], bl
call fcn.00424fe0
push eax
push ebx
lea ecx, [ebp - 0x10298]
push ecx
lea ecx, [ebp - 0x10130]
call fcn.00425bd0
mov byte [ebp - 4], 0x11
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x10184]
call fcn.00402750
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x10280], esi
jb 0x426ad2
mov edx, dword [ebp - 0x10294]
push edx
call fcn.004b29fa
add esp, 4
mov eax, dword [ebp - 0x10180]
mov dword [ebp - 0x10280], edi
mov dword [ebp - 0x10284], ebx
mov byte [ebp - 0x10294], bl
cmp dword [ebp - 0x1016c], esi
jae 0x426af8
lea eax, [ebp - 0x10180]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x426b1f
mov eax, dword [ebp - 0x10180]
cmp dword [ebp - 0x1016c], esi
jae 0x426b17
lea eax, [ebp - 0x10180]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x4e459c
lea eax, [ebp - 0x10184]
push eax
lea ecx, [ebp - 0x1027c]
push ecx
call fcn.00425f60
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0x12
lea edx, [ebp - 0x114]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
push eax
lea eax, [ebp - 0x10168]
push esi
push eax
call fcn.00425f60
add esp, 0xc
mov byte [ebp - 4], 0x14
cmp dword [ebp - 0x10264], 0x10
jb 0x426b7a
mov ecx, dword [ebp - 0x10278]
push ecx
call fcn.004b29fa
add esp, 4
cmp dword [ebp - 0x10150], 0x10
mov eax, dword [ebp - 0x10164]
mov dword [ebp - 0x10264], edi
mov dword [ebp - 0x10268], ebx
mov byte [ebp - 0x10278], bl
jae 0x426ba1
lea eax, [ebp - 0x10164]
push 0x4e4594
push eax
call fcn.004b4baa
mov esi, eax
add esp, 8
mov dword [ebp - 0x101e8], esi
cmp esi, ebx
je 0x426f03
mov edx, dword [ebp - 0x101c8]
push edx
call fcn.004cd0f0
test eax, eax
jne 0x426efa
lea eax, [ebp - 0x114]
mov dword [ebp - 0x10134], edi
mov dword [ebp - 0x10138], ebx
mov byte [ebp - 0x10148], bl
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x426bf0
sub eax, edx
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x1014c]
call fcn.00402840
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x10134]
mov edx, dword [ebp - 0x10148]
mov eax, edx
cmp ecx, 0x10
jae 0x426c29
lea eax, [ebp - 0x10148]
mov esi, dword [ebp - 0x10138]
lea edi, [eax + esi]
cmp edi, ebx
je 0x426c5a
mov eax, edx
cmp ecx, 0x10
jae 0x426c43
lea eax, [ebp - 0x10148]
cmp eax, edi
ja 0x426c5a
mov eax, edx
cmp ecx, 0x10
jae 0x426c54
lea eax, [ebp - 0x10148]
add eax, esi
cmp edi, eax
jbe 0x426c6b
call fcn.004b32e0
mov ecx, dword [ebp - 0x10134]
mov edx, dword [ebp - 0x10148]
cmp ecx, 0x10
jb 0x426dab
mov esi, edx
cmp edx, ebx
je 0x426ca4
mov eax, edx
cmp ecx, 0x10
jae 0x426c87
lea eax, [ebp - 0x10148]
cmp eax, esi
ja 0x426ca4
mov eax, edx
cmp ecx, 0x10
jae 0x426c98
lea eax, [ebp - 0x10148]
mov ecx, dword [ebp - 0x10138]
add eax, ecx
cmp esi, eax
jbe 0x426ca9
call fcn.004b32e0
mov ecx, dword [ebp - 0x101e8]
push ecx
lea eax, [ebp - 0x1014c]
push edi
mov ecx, eax
push ecx
push esi
xor edx, edx
push eax
lea ecx, [ebp - 0x101bc]
mov dword [ebp - 0x101a4], 7
mov dword [ebp - 0x101a8], ebx
mov word [ebp - 0x101b8], dx
call fcn.00425ac0
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0x101a4], 8
mov eax, dword [ebp - 0x101b8]
jae 0x426cf9
lea eax, [ebp - 0x101b8]
push ebx
push eax
lea ecx, [ebp - 0x102c8]
call fcn.004897e0
push 0xffff
lea edx, [ebp - 0x10113]
push ebx
push edx
mov byte [ebp - 0x10114], bl
call fcn.004b32f0
mov ecx, dword [ebp - 0x101c8]
add esp, 0xc
push 0x10000
lea eax, [ebp - 0x10114]
push eax
push ecx
mov dword [ebp - 0x101f0], ebx
call fcn.004cc840
mov esi, eax
cmp esi, ebx
mov edi, esi
jle 0x426e7c
jmp 0x426d50
mov edx, dword [ebp - 0x101e8]
push edx
push 1
lea eax, [ebp - 0x10114]
push esi
push eax
call fcn.004b4616
mov edx, dword [ebp - 0x101c8]
add esp, 0x10
push 0x10000
lea ecx, [ebp - 0x10114]
push ecx
push edx
call fcn.004cc840
mov esi, eax
cmp esi, ebx
jl 0x426de3
mov ecx, dword [ebp - 0x102fc]
add edi, esi
cmp ecx, 0x10000
jbe 0x426db6
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
shr ecx, 5
mov eax, edi
xor edx, edx
div ecx
jmp 0x426dbb
lea esi, [ebp - 0x10148]
jmp 0x426c7a
mov eax, 0x64
cmp eax, dword [ebp - 0x101f0]
je 0x426dd6
push eax
push ebx
lea ecx, [ebp - 0x102c8]
mov dword [ebp - 0x101f0], eax
call fcn.004897e0
cmp esi, ebx
jg 0x426d50
jmp 0x426e7c
push str.Error_extracting
lea ecx, [ebp - 0x10228]
call fcn.00402c20
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x1014c]
push edx
push eax
lea eax, [ebp - 0x10244]
push eax
call fcn.00426020
add esp, 0xc
mov byte [ebp - 4], 0x18
push eax
call fcn.0041a150
mov byte [ebp - 4], 0x17
mov esi, 0x10
cmp dword [ebp - 0x1022c], esi
jb 0x426e38
mov ecx, dword [ebp - 0x10240]
push ecx
call fcn.004b29fa
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x1022c], edi
mov dword [ebp - 0x10230], ebx
mov byte [ebp - 0x10240], bl
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0x10210], esi
jb 0x426e6a
mov edx, dword [ebp - 0x10224]
push edx
call fcn.004b29fa
add esp, 4
mov dword [ebp - 0x10210], edi
mov dword [ebp - 0x10214], ebx
mov byte [ebp - 0x10224], bl
mov eax, dword [ebp - 0x101c8]
push eax
call fcn.004ccac0
mov byte [ebp - 4], 0x15
cmp dword [ebp - 0x101a4], 8
jb 0x426ea4
mov ecx, dword [ebp - 0x101b8]
push ecx
call fcn.004b29fa
add esp, 4
xor edx, edx
mov dword [ebp - 0x101a4], 7
mov dword [ebp - 0x101a8], ebx
mov word [ebp - 0x101b8], dx
mov byte [ebp - 4], 0x14
cmp dword [ebp - 0x10134], 0x10
jb 0x426ed9
mov eax, dword [ebp - 0x10148]
push eax
call fcn.004b29fa
add esp, 4
mov esi, dword [ebp - 0x101e8]
mov dword [ebp - 0x10134], 0xf
mov dword [ebp - 0x10138], ebx
mov byte [ebp - 0x10148], bl
mov edi, 0xf
push esi
call fcn.004b48d1
add esp, 4
mov byte [ebp - 4], 0x10
mov esi, 0x10
cmp dword [ebp - 0x10150], esi
jb 0x426f23
mov ecx, dword [ebp - 0x10164]
push ecx
call fcn.004b29fa
add esp, 4
mov dword [ebp - 0x10150], edi
mov dword [ebp - 0x10154], ebx
mov byte [ebp - 0x10164], bl
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x10118], esi
jb 0x426f50
mov edx, dword [ebp - 0x1012c]
push edx
call fcn.004b29fa
add esp, 4
mov dword [ebp - 0x10118], edi
mov dword [ebp - 0x1011c], ebx
mov byte [ebp - 0x1012c], bl
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1016c], esi
jb 0x426f7d
mov eax, dword [ebp - 0x10180]
push eax
call fcn.004b29fa
add esp, 4
mov esi, dword [ebp - 0x101c8]
mov dword [ebp - 0x1016c], edi
mov dword [ebp - 0x10170], ebx
mov byte [ebp - 0x10180], bl
push esi
call fcn.004cc5e0
cmp dword [ebp - 0x101ec], ebx
jbe 0x426fb6
dec dword [ebp - 0x101ec]
cmp eax, ebx
je 0x426840
jmp 0x42705b
push str.UTILITY
lea ecx, [ebp - 0x10168]
call fcn.004019e0
mov byte [ebp - 4], 0x19
push str.Too_many_files_to_extract._Possibility_in_an_infinite_loop.
lea ecx, [ebp - 0x10130]
call fcn.004019e0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x10168]
push ecx
lea edx, [ebp - 0x10130]
push edx
call fcn.00419d40
mov byte [ebp - 4], 0x19
cmp dword [ebp - 0x10118], 8
jb 0x42700d
mov eax, dword [ebp - 0x1012c]
push eax
call fcn.004b29fa
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x10118], 7
mov dword [ebp - 0x1011c], ebx
mov word [ebp - 0x1012c], cx
mov byte [ebp - 4], 7
cmp dword [ebp - 0x10150], 8
jb 0x427042
mov edx, dword [ebp - 0x10164]
push edx
call fcn.004b29fa
add esp, 4
xor eax, eax
mov dword [ebp - 0x10150], 7
mov dword [ebp - 0x10154], ebx
mov word [ebp - 0x10164], ax
push esi
call fcn.004ccde0
xor ecx, ecx
push 7
mov word [ebp - 0x101e0], cx
push str.UTILITY
lea ecx, [ebp - 0x101e4]
mov dword [ebp - 0x101cc], 7
mov dword [ebp - 0x101d0], ebx
call fcn.00401860
mov byte [ebp - 4], 0x1b
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x10228]
push str.Finished_extracting
push eax
call fcn.00401a30
add esp, 0xc
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x101e4]
push ecx
push eax
call fcn.00419d40
mov byte [ebp - 4], 0x1b
cmp dword [ebp - 0x10210], 8
jb 0x4270d5
mov edx, dword [ebp - 0x10224]
push edx
call fcn.004b29fa
add esp, 4
mov esi, 7
xor eax, eax
mov dword [ebp - 0x10210], esi
mov dword [ebp - 0x10214], ebx
mov word [ebp - 0x10224], ax
mov byte [ebp - 4], 7
cmp dword [ebp - 0x101cc], 8
jb 0x42710b
mov ecx, dword [ebp - 0x101e0]
push ecx
call fcn.004b29fa
add esp, 4
mov eax, dword [ebp - 0x102c4]
xor edx, edx
push eax
mov dword [ebp - 0x101cc], esi
mov dword [ebp - 0x101d0], ebx
mov word [ebp - 0x101e0], dx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov byte [ebp - 4], 2
cmp dword [ebp - 0x10188], 0x10
jb 0x427149
mov ecx, dword [ebp - 0x1019c]
push ecx
call fcn.004b29fa
add esp, 4
mov dword [ebp - 0x10188], edi
mov dword [ebp - 0x1018c], ebx
mov byte [ebp - 0x1019c], bl
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x102c8]
call fcn.00404f60
mov byte [ebp - 4], bl
mov edi, 8
cmp dword [ebp + 0x20], edi
jb 0x427183
mov edx, dword [ebp + 0xc]
push edx
call fcn.004b29fa
add esp, 4
xor eax, eax
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x1c], ebx
mov word [ebp + 0xc], ax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0x3c], edi
jb 0x4271a7
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.004b29fa
add esp, 4
xor edx, edx
mov dword [ebp + 0x3c], esi
lea eax, [edx + 1]
mov word [ebp + 0x28], dx
mov dword [ebp + 0x38], ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b3057
mov esp, ebp
pop ebp
ret 0x3c