Function at 0x429db0
Capabilities:
Delete file
Get disk size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x484bc4
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1020
call fcn.00469d10
mov eax, dword [0x4a86f0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov dword [ebp - 0xf58], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xf64], eax
xor eax, eax
mov dword [ebp - 4], 0
push 0x206
push eax
mov word [ebp - 0x41c], ax
xor edi, edi
lea eax, [ebp - 0x41a]
mov dword [ebp - 0xf8c], edi
push eax
mov dword [ebp - 0xf70], edi
call fcn.0046a390
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x624], ax
lea eax, [ebp - 0x622]
push eax
call fcn.0046a390
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xb34], ax
lea eax, [ebp - 0xb32]
push eax
call fcn.0046a390
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xd3c], ax
lea eax, [ebp - 0xd3a]
push eax
call fcn.0046a390
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x92c], ax
lea eax, [ebp - 0x92a]
push eax
call fcn.0046a390
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x214], ax
lea eax, [ebp - 0x212]
push eax
call fcn.0046a390
add esp, 0x48
mov dword [ebp - 0xfa4], edi
xorps xmm0, xmm0
mov dword [ebp - 0xf9c], edi
movlpd qword [ebp - 0xf60], xmm0
movlpd qword [ebp - 0xfac], xmm0
push edi
push 0x80
push 3
push edi
push 1
push closesocket
push esi
movlpd qword [ebp - 0xfc4], xmm0
mov byte [ebp - 0xf45], 0
movlpd qword [ebp - 0xffc], xmm0
movlpd qword [ebp - 0xfb8], xmm0
movlpd qword [ebp - 0x1008], xmm0
movlpd qword [ebp - 0xfcc], xmm0
movlpd qword [ebp - 0xf78], xmm0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xf54], eax
cmp eax, 0xffffffff
jne 0x429f47
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x429f3d
push eax
call fcn.00429520
add esp, 4
mov eax, 2
jmp 0x42b8ad
push esi
lea eax, [ebp - 0xb34]
mov byte [ebp - 4], 1
push 0x104
push eax
call fcn.0046bf5a
push esi
lea eax, [ebp - 0xd3c]
push 0x104
push eax
call fcn.0046bf5a
add esp, 0x18
lea eax, [ebp - 0xb34]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0xd3c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
add ebx, 4
mov dword [ebp - 0xfbc], 0
adc esi, 0
push esi
push ebx
push str.ReadDataStruct____LastOffSet_I64d
call fcn.0045f880
add esp, 0xc
lea eax, [ebp - 0xfac]
mov ecx, ebx
neg ecx
push 2
push eax
mov eax, esi
adc eax, 0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
test eax, eax
je 0x42b81c
cmp dword [ebp - 0xfac], 0xffffffff
jne 0x429ff3
cmp dword [ebp - 0xfa8], 0
je 0x42b81c
push 0
lea eax, [ebp - 0xf70]
push eax
push 4
lea eax, [ebp - 0xfbc]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0xfbc]
push str.ReadDataStruct____NbFiles_d
call fcn.0045f880
add esp, 8
lea eax, [ebp - 0xfac]
add ebx, 8
xorps xmm0, xmm0
mov ecx, ebx
movlpd qword [ebp - 0x1020], xmm0
adc esi, 0
neg ecx
push 2
push eax
mov eax, esi
adc eax, 0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push 8
lea eax, [ebp - 0x1020]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x101c]
mov dword [ebp - 0xfe8], eax
push dword [ebp - 0x1020]
push str.ReadDataStruct____TotFilesSize_I64u
call fcn.0045f880
add esp, 0xc
mov ecx, 0x4a8038
cmp dword [0x4a8040], 0
push 0
push dword [ebp - 0xfbc]
je 0x42a0c5
push 0x64
push 0
call fcn.00430390
push 1
push 0
mov ecx, 0x4a8038
call fcn.00430360
jmp 0x42a0ce
push 3
push 0
call fcn.00430390
mov dword [ebp - 0xfd8], 0
mov dword [ebp - 0xfd0], 0
mov dword [ebp - 0xfe4], 0
mov dword [ebp - 0xfdc], 0
xor edx, edx
mov dword [ebp - 0xff4], edx
mov dword [ebp - 0xfec], edx
xor eax, eax
mov dword [ebp - 0xf98], eax
mov dword [ebp - 0xf90], eax
mov ecx, dword [ebp - 0xfc0]
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xf50], ecx
mov ecx, dword [ebp - 0xfc4]
mov dword [ebp - 0xf4c], ecx
mov ecx, dword [ebp - 0xfb4]
mov dword [ebp - 0xf84], ecx
mov ecx, dword [ebp - 0xfb8]
mov dword [ebp - 0xf88], ecx
mov ecx, dword [ebp - 0x1004]
mov dword [ebp - 0x1000], ecx
mov ecx, dword [ebp - 0x1008]
mov dword [ebp - 0x1004], ecx
mov ecx, dword [ebp - 0xfc8]
mov dword [ebp - 0xf7c], ecx
mov ecx, dword [ebp - 0xfcc]
mov dword [ebp - 0xf80], ecx
mov ecx, dword [ebp - 0xf74]
mov dword [ebp + 0x20], eax
xor eax, eax
mov dword [ebp - 0xfa0], ecx
mov ecx, dword [ebp - 0xf78]
mov byte [ebp - 4], 5
mov dword [ebp - 0xfd4], edx
mov dword [ebp - 0xfe0], edx
mov dword [ebp - 0xff0], edx
mov dword [ebp - 0xf94], edx
mov dword [ebp - 0xf68], eax
mov dword [ebp - 0xfb0], eax
mov dword [ebp - 0x1018], eax
mov dword [ebp - 0xf6c], eax
mov dword [ebp - 0x1014], eax
mov dword [ebp - 0xfc8], ecx
lea esp, [esp]
cmp eax, dword [ebp - 0xfbc]
jae 0x42aa96
cmp dword [ebp - 0xfac], 0xffffffff
jne 0x42a1f2
cmp dword [ebp - 0xfa8], 0
je 0x42aa96
cmp dword [ebp - 0xfe8], 0
je 0x42aa96
cmp dword [0x4c2e50], 0
jne 0x42aa96
add ebx, 4
mov dword [ebp - 0xfa4], 0
push 2
adc esi, 0
mov dword [ebp - 0xf9c], 0
lea eax, [ebp - 0xfac]
mov ecx, ebx
push eax
neg ecx
mov eax, esi
xorps xmm0, xmm0
adc eax, 0
movlpd qword [ebp - 0xf60], xmm0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push 4
lea eax, [ebp - 0xfa4]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
push ebx
push dword [ebp - 0xfa4]
push str.ReadDataStruct____lgFile_u_LastOffSet_u
call fcn.0045f880
mov eax, dword [ebp - 0xfa4]
add esp, 0x10
test eax, eax
je 0x42a30e
add ebx, eax
lea eax, [ebp - 0xfac]
push 2
push eax
adc esi, 0
mov ecx, ebx
neg ecx
mov eax, esi
adc eax, 0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push dword [ebp - 0xfa4]
lea eax, [ebp - 0x41c]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0xfa4]
add eax, eax
cmp eax, 0x208
jae 0x42a6a8
xor ecx, ecx
mov word [ebp + eax - 0x41c], cx
lea eax, [ebp - 0x41c]
push eax
push str.ReadDataStruct____File_s
call fcn.0045f880
add esp, 8
add ebx, 8
lea eax, [ebp - 0xfac]
push 2
push eax
adc esi, 0
mov ecx, ebx
neg ecx
mov eax, esi
adc eax, 0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push 8
lea eax, [ebp - 0xf60]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0xf5c]
push dword [ebp - 0xf60]
push str.ReadDataStruct____FileSize_I64u
call fcn.0045f880
add esp, 0xc
lea eax, [ebp - 0xfac]
add ebx, 8
mov ecx, ebx
adc esi, 0
neg ecx
push 2
push eax
mov eax, esi
adc eax, 0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push 8
lea eax, [ebp - 0xffc]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0xff8]
push dword [ebp - 0xffc]
push str.ReadDataStruct____DataOffSet_I64u
call fcn.0045f880
add esp, 0xc
lea eax, [ebp - 0xfac]
add ebx, 1
mov ecx, ebx
adc esi, 0
neg ecx
push 2
push eax
mov eax, esi
adc eax, 0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push 1
lea eax, [ebp - 0xf45]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, byte [ebp - 0xf45]
push eax
push str.ReadDataStruct____TypeOfFile_d
call fcn.0045f880
add esp, 8
lea eax, [ebp - 0xfac]
add ebx, 4
mov ecx, ebx
adc esi, 0
neg ecx
push 2
push eax
mov eax, esi
mov dword [ebp - 0xfb4], esi
adc eax, 0
neg eax
push eax
push ecx
push dword [ebp - 0xf54]
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push 4
lea eax, [ebp - 0xf9c]
push eax
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0xf9c]
mov dword [ebp - 0xfe8], eax
push str.ReadDataStruct____lgFileOut_u
call fcn.0045f880
mov eax, dword [ebp - 0xf9c]
add esp, 8
test eax, eax
je 0x42a524
add ebx, eax
lea eax, [ebp - 0xfac]
mov ecx, ebx
adc esi, 0
neg ecx
mov dword [ebp - 0xfb4], esi
push 2
adc esi, 0
push eax
neg esi
push esi
mov esi, dword [ebp - 0xf54]
push ecx
push esi
call fcn.0042ef10
add esp, 0x14
lea eax, [ebp - 0xf70]
push 0
push eax
push dword [ebp - 0xf9c]
lea eax, [ebp - 0x624]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0xfe8], eax
mov eax, dword [ebp - 0xf9c]
add eax, eax
cmp eax, 0x208
jae 0x42a6a8
xor ecx, ecx
mov word [ebp + eax - 0x624], cx
lea eax, [ebp - 0x624]
push eax
push str.ReadDataStruct____FileOut_s
call fcn.0045f880
add esp, 8
mov esi, dword [ebp - 0xf68]
lea ecx, [ebp + 0x1c]
lea eax, [esi + 1]
push eax
mov dword [ebp - 0xfc0], eax
call fcn.0042ba70
imul esi, esi, 0x430
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp + 0x1c]
push 0x104
add eax, esi
push eax
call fcn.0046bf5a
mov eax, dword [ebp + 0x1c]
add eax, esi
push eax
push str.ReadDataStruct____vDataFiles_i_.szFile_s
call fcn.0045f520
add esp, 0x14
lea eax, [ebp - 0x624]
push eax
mov eax, dword [ebp + 0x1c]
add eax, 0x208
add eax, esi
push 0x104
push eax
call fcn.0046bf5a
mov eax, dword [ebp + 0x1c]
add eax, 0x208
add eax, esi
push eax
push str.ReadDataStruct____vDataFiles_i_.szFileOut_s
call fcn.0045f520
mov eax, dword [ebp + 0x1c]
add esp, 0x14
mov ecx, dword [ebp - 0xf60]
mov dword [esi + eax + 0x410], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0xf5c]
mov dword [esi + eax + 0x414], ecx
mov ecx, dword [ebp + 0x1c]
movzx eax, byte [ebp - 0xf45]
mov byte [esi + ecx + 0x428], al
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0xffc]
mov dword [esi + eax + 0x420], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0xff8]
mov dword [esi + eax + 0x424], ecx
mov al, byte [ebp - 0xf45]
test al, 1
je 0x42a7c5
mov esi, dword [ebp - 0x1018]
lea ecx, [ebp - 0xff4]
inc esi
push esi
mov dword [ebp - 0x1018], esi
call fcn.0042ba70
mov edx, dword [ebp - 0xff4]
mov eax, dword [ebp - 0xffc]
imul esi, esi, 0x430
mov dword [esi + edx - 0x10], eax
mov eax, dword [ebp - 0xff8]
mov dword [esi + edx - 0xc], eax
mov eax, dword [ebp - 0xf60]
mov dword [esi + edx - 0x18], eax
mov eax, dword [ebp - 0xf5c]
mov dword [esi + edx - 0x14], eax
mov ecx, dword [ebp - 0xf60]
add dword [ebp - 0xf80], ecx
mov eax, dword [ebp - 0xf5c]
adc dword [ebp - 0xf7c], eax
add dword [ebp - 0xf4c], ecx
adc dword [ebp - 0xf50], eax
test byte [ebp - 0xf45], 4
je 0x42a6ad
lea eax, [ebp - 0x41c]
add esi, 0xfffffdd8
push eax
push dword [ebp - 0xf58]
add esi, edx
push esi
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push esi
push str.ReadDataStruct____vFilesToExtract_dwCptFtE_1_.szTgdFile_s
call fcn.0045f520
add esp, 8
jmp 0x42aa6c
call fcn.0046be7e
lea ecx, [ebp - 0x41c]
push ecx
push dword [ebp - 0xf64]
lea eax, [edx - 0x228]
add eax, esi
push eax
mov dword [ebp - 0xf68], eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov esi, dword [ebp - 0xf6c]
lea ecx, [ebp - 0xf98]
inc esi
push esi
mov dword [ebp - 0xf6c], esi
call fcn.0042ba70
mov eax, dword [ebp - 0xf98]
lea ecx, [ebp - 0x41c]
imul esi, esi, 0x430
add eax, 0xfffffbd0
push ecx
push dword [ebp - 0xf64]
add eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov eax, dword [ebp - 0xf98]
push dword [ebp - 0xf58]
add eax, 0xfffffdd8
add eax, esi
push 0x104
push eax
call fcn.0046bf5a
mov ecx, dword [ebp - 0xf98]
xor eax, eax
cmp dword [ebp + 0x2c], eax
push dword [ebp - 0xf68]
sete al
mov dword [esi + ecx - 8], eax
mov eax, dword [ebp - 0xf60]
mov dword [esi + ecx - 0x18], eax
mov eax, dword [ebp - 0xf5c]
mov dword [esi + ecx - 0x14], eax
mov ecx, dword [ebp - 0xf60]
add dword [ebp - 0xfc8], ecx
mov eax, dword [ebp - 0xf5c]
adc dword [ebp - 0xfa0], eax
add dword [ebp - 0xf4c], ecx
push str.ReadDataStruct____vFilesToExtract_dwCptFtE_1_.szTgdFile_s
adc dword [ebp - 0xf50], eax
call fcn.0045f520
mov eax, dword [ebp - 0xf98]
add esp, 0x14
add eax, 0xfffffbd0
add eax, esi
push eax
push str.ReadDataStruct____vFilesToUncompress_dwCptFtU_1_.szSrcFile_s
call fcn.0045f520
mov eax, dword [ebp - 0xf98]
add esp, 8
add eax, 0xfffffdd8
add eax, esi
push eax
push str.ReadDataStruct____vFilesToUncompress_dwCptFtU_1_.szTgdFile_s
call fcn.0045f520
add esp, 8
jmp 0x42aa6c
test al, 2
je 0x42aa6c
lea eax, [ebp - 0x624]
push eax
lea eax, [ebp - 0xb34]
push eax
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x92c]
push eax
call fcn.0042df80
add esp, 4
test eax, eax
jne 0x42a833
lea eax, [ebp - 0x624]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov esi, eax
lea eax, [ebp - 0xd3c]
push eax
lea eax, [ebp - 0xb34]
push eax
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push esi
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionW]
test byte [ebp - 0xf45], 8
je 0x42a90c
lea eax, [ebp - 0x92c]
push eax
call fcn.0042df80
add esp, 4
test eax, eax
je 0x42a85d
cmp dword [ebp + 0x28], 0
je 0x42a90c
mov esi, dword [ebp - 0x1014]
lea ecx, [ebp - 0xfe4]
inc esi
push esi
mov dword [ebp - 0x1014], esi
call fcn.0042ba70
mov edx, dword [ebp - 0xfe4]
mov eax, dword [ebp - 0xf60]
imul esi, esi, 0x430
push 0x2f
mov dword [esi + edx - 0x18], eax
mov eax, dword [ebp - 0xf5c]
mov dword [esi + edx - 0x14], eax
mov ecx, dword [ebp - 0xf60]
add dword [ebp - 0x1004], ecx
mov eax, dword [ebp - 0xf5c]
adc dword [ebp - 0x1000], eax
add dword [ebp - 0xf4c], ecx
adc dword [ebp - 0xf50], eax
lea eax, [ebp - 0x624]
push eax
lea eax, [edx - 0x430]
add eax, esi
push 0x4babe4
push eax
call fcn.0042e620
add esp, 0x10
test byte [ebp - 0xf45], 4
je 0x42a8fa
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0xf58]
mov eax, dword [ebp - 0xfe4]
jmp 0x42a9b7
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp - 0xfe4]
jmp 0x42a9b1
mov esi, dword [ebp - 0xfb0]
lea ecx, [ebp - 0xfd8]
inc esi
push esi
mov dword [ebp - 0xfb0], esi
call fcn.0042ba70
mov edx, dword [ebp - 0xfd8]
mov eax, dword [ebp - 0xf60]
imul esi, esi, 0x430
mov dword [esi + edx - 0x18], eax
mov eax, dword [ebp - 0xf5c]
mov dword [esi + edx - 0x14], eax
mov ecx, dword [ebp - 0xf60]
add dword [ebp - 0xf88], ecx
mov eax, dword [ebp - 0xf5c]
adc dword [ebp - 0xf84], eax
add dword [ebp - 0xf4c], ecx
adc dword [ebp - 0xf50], eax
lea eax, [ebp - 0x92c]
push eax
lea eax, [edx - 0x430]
add eax, esi
push 0x104
push eax
call fcn.0046bf5a
add esp, 0xc
test byte [ebp - 0xf45], 4
je 0x42a9a4
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0xf58]
mov eax, dword [ebp - 0xfd8]
jmp 0x42a9b7
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp - 0xfd8]
push dword [ebp - 0xf64]
add eax, 0xfffffdd8
add eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test byte [ebp - 0xf45], 4
jne 0x42aa6c
mov esi, dword [ebp - 0xf6c]
lea ecx, [ebp - 0xf98]
inc esi
push esi
mov dword [ebp - 0xf6c], esi
call fcn.0042ba70
mov edx, dword [ebp - 0xf98]
mov eax, dword [ebp - 0xf60]
imul esi, esi, 0x430
mov dword [esi + edx - 0x18], eax
mov eax, dword [ebp - 0xf5c]
mov dword [esi + edx - 0x14], eax
mov ecx, dword [ebp - 0xf60]
add dword [ebp - 0xfc8], ecx
mov eax, dword [ebp - 0xf5c]
adc dword [ebp - 0xfa0], eax
add dword [ebp - 0xf4c], ecx
adc dword [ebp - 0xf50], eax
lea eax, [ebp - 0x41c]
push eax
push dword [ebp - 0xf64]
lea eax, [edx - 0x430]
add eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push dword [ebp - 0xf58]
mov eax, dword [ebp - 0xf98]
add eax, 0xfffffdd8
add eax, esi
push 0x104
push eax
call fcn.0046bf5a
add esp, 0xc
mov eax, dword [ebp - 0xfc0]
mov ecx, 0x4a8038
push 0
push eax
mov dword [ebp - 0xf68], eax
call fcn.00430700
mov esi, dword [ebp - 0xfb4]
mov eax, dword [ebp - 0xf68]
jmp 0x42a1d0
push 0
push 0
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x1010], 0
push eax
push dword [ebp - 0xf58]
mov dword [ebp - 0x100c], 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x42ac41
push dword [ebp - 0x100c]
mov ebx, dword [ebp - 0xf4c]
push dword [ebp - 0x1010]
add ebx, dword [0x4bfdcd]
mov esi, dword [ebp - 0xf50]
adc esi, dword [0x4bfdd1]
push str.ReadDataStruct____FreeBytesAvailable_I64u
call fcn.0045f880
add esp, 0xc
push dword [0x4bfdd1]
push dword [0x4bfdcd]
push str.ReadDataStruct____TotFilesSize_I64u
call fcn.0045f880
add esp, 0xc
push dword [ebp - 0xf50]
push dword [ebp - 0xf4c]
push str.ReadDataStruct____TotDataSize_I64u
call fcn.0045f880
add esp, 0xc
push esi
push ebx
push str.ReadDataStruct____TotNeedSize_I64u
call fcn.0045f880
add esp, 0xc
cmp esi, dword [ebp - 0x100c]
jb 0x42ac41
ja 0x42ab55
cmp ebx, dword [ebp - 0x1010]
jbe 0x42ac41
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xf44], ax
lea eax, [ebp - 0xf42]
push eax
call fcn.0046a390
push dword [ebp - 0xf58]
lea eax, [ebp - 0xf44]
push 0x104
push eax
call fcn.0046bf5a
add esp, 0x18
lea eax, [ebp - 0xf44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
imul eax, dword [0x4bfdbd], 0x620
add eax, dword [0x4c38b8]
push dword [eax + 0x618]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x25e
push dword [0x4c14e4]
call fcn.004510f0
add esp, 0x14
test eax, eax
je 0x42abf9
shrd ebx, esi, 0xa
lea eax, [ebp - 0xf44]
push eax
shr esi, 0xa
lea eax, [ebp - 0x214]
push esi
push ebx
push eax
push 0x100
push 0x4c2c40
call fcn.0046988e
add esp, 0x18
lea ecx, [ebp - 0xf98]
mov dword [0x4c2e40], 0x70
call fcn.00429bd0
lea ecx, [ebp - 0xff4]
call fcn.00429bd0
lea ecx, [ebp - 0xfe4]
call fcn.00429bd0
lea ecx, [ebp - 0xfd8]
call fcn.00429bd0
lea ecx, [ebp + 0x1c]
call fcn.00429bd0
mov eax, 0x70
jmp 0x42b8ad
mov ecx, dword [ebp - 0xfe0]
mov eax, 0x7a44c6b
mov esi, dword [ebp - 0xfe4]
sub ecx, esi
imul ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
je 0x42ad28
xor eax, eax
push 0xfe
push eax
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
push eax
call fcn.0046a390
push 0
lea eax, [ebp - 0xf68]
mov dword [ebp - 0xf68], 0
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x724]
push eax
push esi
call fcn.00438dd0
add esp, 0x28
lea eax, [ebp - 0x724]
push dword [ebp - 0xf68]
push eax
push esi
push str.ReadDataStruct____Url_s__HostName_s_Scheme_d
call fcn.0045f520
add esp, 0x10
cmp dword [ebp - 0xf68], 5
je 0x42ad28
lea eax, [ebp - 0x724]
push eax
call fcn.00438cd0
add esp, 4
test al, 2
je 0x42acea
cmp dword [0x4c2e50], 0
je 0x42ad28
lea ecx, [ebp - 0xf98]
call fcn.00429bd0
lea ecx, [ebp - 0xff4]
call fcn.00429bd0
lea ecx, [ebp - 0xfe4]
call fcn.00429bd0
lea ecx, [ebp - 0xfd8]
call fcn.00429bd0
lea ecx, [ebp + 0x1c]
call fcn.00429bd0
mov eax, 0x4ce
jmp 0x42b8ad
mov edx, dword [ebp - 0xfa0]
mov ecx, dword [ebp - 0xfc8]
call fcn.0046c2ce
mulsd xmm0, qword [str.ffffff]
call fcn.0046c1b0
mov ecx, dword [ebp - 0x1004]
mov dword [ebp - 0xf58], edx
mov edx, dword [ebp - 0x1000]
mov dword [ebp - 0xf64], eax
call fcn.0046c2ce
mulsd xmm0, qword [0x488da8]
call fcn.0046c1b0
mov esi, eax
mov eax, edx
mov edx, dword [ebp - 0xf64]
mov ecx, esi
add ecx, edx
mov dword [ebp - 0xf6c], eax
mov dword [ebp - 0xfb4], esi
adc eax, dword [ebp - 0xf58]
add ecx, dword [ebp - 0xf80]
adc eax, dword [ebp - 0xf7c]
add ecx, dword [ebp - 0xf88]
mov dword [ebp - 0xf50], ecx
adc eax, dword [ebp - 0xf84]
push eax
push ecx
push dword [ebp - 0xf58]
mov dword [ebp - 0xf4c], eax
push edx
push dword [ebp - 0xfa0]
push dword [ebp - 0xfc8]
push str.ReadDataStruct____TotSizeFilesToUncompress_I64u_TotSizeComp_I64u_TotSize_I64u
call fcn.0045f880
add esp, 0x1c
xorps xmm0, xmm0
movlpd qword [0x4a80a9], xmm0
test ebx, ebx
je 0x42af97
mov edx, dword [ebp - 0xf6c]
mov ecx, esi
call fcn.0046c2ce
cmp dword [0x4a8040], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x42aec2
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf6c]
mov esi, eax
mov ecx, 0x4a8038
push dword [ebp - 0xfb4]
add esi, dword [0x4a8069]
push 0x64
push 0
call fcn.00430390
mov ecx, 0x4a8038
call fcn.004305f0
push esi
push dword [0x4a8069]
mov ecx, 0x4a8038
call fcn.00430360
imul eax, dword [0x4bfdbd], 0x620
add eax, dword [0x4c38b8]
push dword [eax + 0x618]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8b
push dword [0x4c14e4]
call fcn.004510f0
add esp, 0x14
test eax, eax
je 0x42af0d
lea eax, [ebp - 0x214]
mov ecx, 0x4a8038
push eax
call fcn.00430770
jmp 0x42af0d
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf6c]
mov esi, eax
mov ecx, 0x4a8038
mov eax, dword [0x4a8061]
add esi, eax
push dword [ebp - 0xfb4]
push esi
push eax
call fcn.00430390
push esi
push str.ReadDataStruct____Status1_u
call fcn.0045f880
add esp, 8
xor esi, esi
lea ecx, [ecx]
cmp esi, ebx
jae 0x42af88
cmp dword [0x4c2e50], 0
jne 0x42af88
test edi, edi
jne 0x42af88
mov ecx, dword [ebp - 0xfe4]
push dword [ebp + 0x2c]
imul eax, esi, 0x430
add ecx, eax
lea eax, [ecx + 0x208]
push eax
push 0x487854
push 0x487854
push ecx
call fcn.00437e30
add esp, 0x14
test eax, eax
je 0x42af85
push 0x4a2abc
lea eax, [ebp - 0x1024]
mov dword [ebp - 0xf8c], 0x4d4
push eax
mov dword [ebp - 0x1024], 0x4d4
call fcn.004698b9
inc esi
jmp 0x42af20
push 0x3e8
mov ecx, 0x4a8038
call fcn.004305b0
xorps xmm0, xmm0
mov ecx, 0x4a8038
push 0x3e8
movlpd qword [0x4a80a9], xmm0
call fcn.004305b0
mov ecx, dword [ebp - 0xfd4]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xfd8]
imul ecx
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [ebp - 0xfc0], esi
je 0x42b208
mov edx, dword [ebp - 0xf84]
mov ecx, dword [ebp - 0xf88]
call fcn.0046c2ce
cmp dword [0x4a8040], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x42b0bd
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf84]
mov ebx, eax
mov ecx, 0x4a8038
push dword [ebp - 0xf88]
add ebx, dword [0x4a8069]
push 0x64
push 0
mov dword [ebp - 0xfb4], ebx
call fcn.00430390
mov ecx, 0x4a8038
call fcn.004305f0
push ebx
push dword [0x4a8069]
mov ecx, 0x4a8038
call fcn.00430360
imul eax, dword [0x4bfdbd], 0x620
add eax, dword [0x4c38b8]
push dword [eax + 0x618]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8f
push dword [0x4c14e4]
call fcn.004510f0
add esp, 0x14
test eax, eax
je 0x42b10e
lea eax, [ebp - 0x214]
mov ecx, 0x4a8038
push eax
call fcn.00430770
jmp 0x42b10e
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf84]
mov ebx, eax
mov ecx, 0x4a8038
mov eax, dword [0x4a8061]
add ebx, eax
push dword [ebp - 0xf88]
mov dword [ebp - 0xfb4], ebx
push ebx
push eax
call fcn.00430390
push ebx
push str.ReadDataStruct____Status2_u
call fcn.0045f880
add esp, 8
mov dword [ebp - 0xfb0], esi
xor ebx, ebx
mov ecx, esi
jmp 0x42b130
mov eax, dword [0x4c2e50]
cmp ebx, esi
jae 0x42b1dd
test eax, eax
jne 0x42b1dd
test edi, edi
jne 0x42b352
imul esi, ebx, 0x430
add esi, dword [ebp - 0xfd8]
push dword [esi + 0x41c]
push dword [esi + 0x418]
push ecx
mov ecx, 0x4a8038
cmp dword [0x4a8040], edi
je 0x42b177
push 0x64
jmp 0x42b17d
push dword [ebp - 0xfb4]
call fcn.00430410
mov eax, dword [0x4ba7d0]
neg eax
sbb eax, eax
and eax, 0x200000
or eax, 0x400000
push eax
lea eax, [esi + 0x208]
push eax
push esi
call fcn.0045e970
add esp, 0xc
mov edi, eax
lea eax, [esi + 0x208]
mov dword [ebp - 0xf8c], edi
push edi
push eax
push esi
push str.ReadDataStruct____XCopyFile__s____s____d
call fcn.0045f520
mov ecx, dword [ebp - 0xfb0]
add esp, 0x10
mov esi, dword [ebp - 0xfc0]
inc ebx
dec ecx
mov dword [ebp - 0xfb0], ecx
jmp 0x42b130
test edi, edi
jne 0x42b352
test eax, eax
jne 0x42b352
mov ecx, 0x4a8038
push 0x3e8
cmp dword [0x4a8040], eax
je 0x42b348
call fcn.00430570
mov ecx, dword [ebp - 0xff0]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xff4]
xorps xmm0, xmm0
imul ecx
movlpd qword [0x4a80a9], xmm0
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [ebp - 0xfc0], esi
je 0x42b4cb
cmp dword [0x4a8040], 0
je 0x42b369
push dword [ebp - 0xf4c]
mov ebx, dword [ebp - 0xf50]
push ebx
push dword [ebp - 0xf7c]
push dword [ebp - 0xf80]
push dword [0x4a8069]
push str.ReadDataStruct____MaxMainBarStep_u_TotSizeFilesToExtract_I64u_TotSize_I64u
call fcn.0045f880
mov edx, dword [ebp - 0xf7c]
add esp, 0x18
mov ecx, dword [ebp - 0xf80]
call fcn.0046c2ce
mov edx, dword [ebp - 0xf4c]
mov ecx, ebx
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf7c]
mov ebx, eax
mov ecx, 0x4a8038
push dword [ebp - 0xf80]
add ebx, dword [0x4a8069]
push 0x64
push 0
call fcn.00430390
mov ecx, 0x4a8038
call fcn.004305f0
push ebx
push dword [0x4a8069]
mov ecx, 0x4a8038
call fcn.00430360
imul eax, dword [0x4bfdbd], 0x620
add eax, dword [0x4c38b8]
push dword [eax + 0x618]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8e
push dword [0x4c14e4]
call fcn.004510f0
add esp, 0x14
test eax, eax
je 0x42b3d1
lea eax, [ebp - 0x214]
mov ecx, 0x4a8038
push eax
call fcn.00430770
jmp 0x42b3d1
call fcn.004305b0
jmp 0x42b208
push 0x4a2abc
lea eax, [ebp - 0x1028]
mov dword [ebp - 0x1028], edi
push eax
call fcn.004698b9
mov edx, dword [ebp - 0xf7c]
mov ecx, dword [ebp - 0xf80]
call fcn.0046c2ce
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf7c]
mov ebx, eax
mov ecx, 0x4a8038
mov eax, dword [0x4a8061]
add ebx, eax
push dword [ebp - 0xf80]
push ebx
push eax
call fcn.00430390
push ebx
push str.ReadDataStruct____Status3_u
call fcn.0045f880
add esp, 8
xor ebx, ebx
mov eax, dword [0x4c2e50]
cmp ebx, esi
jae 0x42b4ac
test eax, eax
jne 0x42b4ac
test edi, edi
jne 0x42b5d6
mov ecx, dword [ebp - 0xff4]
push edi
push dword [0x4ba7d0]
imul esi, ebx, 0x430
push 1
lea eax, [ecx + 0x208]
add eax, esi
push eax
push dword [esi + ecx + 0x414]
push dword [esi + ecx + 0x410]
push dword [esi + ecx + 0x41c]
push dword [esi + ecx + 0x418]
push dword [esi + ecx + 0x424]
push dword [esi + ecx + 0x420]
push 0x487854
push dword [ebp - 0xf54]
call fcn.0045d0e0
mov edx, dword [ebp - 0xff4]
add esp, 0x30
mov edi, eax
mov dword [ebp - 0xf8c], edi
push edi
lea eax, [edx + 0x208]
add eax, esi
push eax
push dword [esi + edx + 0x41c]
push dword [esi + edx + 0x418]
push dword [esi + edx + 0x424]
push dword [esi + edx + 0x420]
push dword [ebp - 0xf54]
push str.ReadDataStruct____ExtractPieceOfFile__d____I64u___I64u___s____d
call fcn.0045f520
mov esi, dword [ebp - 0xfc0]
add esp, 0x20
inc ebx
jmp 0x42b3e1
test edi, edi
jne 0x42b5d6
test eax, eax
jne 0x42b5d6
push 0x3e8
mov ecx, 0x4a8038
call fcn.004305b0
mov ecx, dword [ebp - 0xf94]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xf98]
xorps xmm0, xmm0
imul ecx
movlpd qword [0x4a80a9], xmm0
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
je 0x42b6d6
mov edx, dword [ebp - 0xf58]
mov ecx, dword [ebp - 0xf64]
call fcn.0046c2ce
cmp dword [0x4a8040], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x42b5ed
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf58]
mov ebx, eax
mov ecx, 0x4a8038
push dword [ebp - 0xf64]
add ebx, dword [0x4a8069]
push 0x64
push 0
call fcn.00430390
mov ecx, 0x4a8038
call fcn.004305f0
push ebx
push dword [0x4a8069]
mov ecx, 0x4a8038
call fcn.00430360
imul eax, dword [0x4bfdbd], 0x620
add eax, dword [0x4c38b8]
push dword [eax + 0x618]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x91
push dword [0x4c14e4]
call fcn.004510f0
add esp, 0x14
test eax, eax
je 0x42b638
lea eax, [ebp - 0x214]
mov ecx, 0x4a8038
push eax
call fcn.00430770
jmp 0x42b638
push 0x4a2abc
lea eax, [ebp - 0x1030]
mov dword [ebp - 0x1030], edi
push eax
call fcn.004698b9
movsd qword [ebp - 0xf78], xmm0
call fcn.0046c2ce
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x488db0]
movapd xmm0, xmm1
call fcn.0046c1a1
push dword [ebp - 0xf58]
mov ebx, eax
mov ecx, 0x4a8038
mov eax, dword [0x4a8061]
add ebx, eax
push dword [ebp - 0xf64]
push ebx
push eax
call fcn.00430390
push ebx
push str.ReadDataStruct____Status4_u
call fcn.0045f520
add esp, 8
mov eax, dword [0x4c2e50]
test esi, esi
je 0x42b6b7
test eax, eax
jne 0x42b6b7
test edi, edi
jne 0x42b77f
mov ebx, dword [ebp - 0xf98]
push dword [0x4ba7bc]
imul eax, esi, 0x430
add ebx, 0xfffffbd0
add ebx, eax
mov dword [ebp - 0xfc0], eax
lea eax, [ebx + 0x208]
push eax
push ebx
call fcn.0045e390
mov edi, eax
add esp, 0xc
mov eax, dword [ebp - 0xfc0]
add eax, 0xfffffdd8
mov dword [ebp - 0xf8c], edi
add eax, dword [ebp - 0xf98]
push edi
push eax
push ebx
push str.ReadDataStruct____UnCompressFile__s____s____d
call fcn.0045f520
add esp, 0x10
dec esi
jmp 0x42b646
test edi, edi
jne 0x42b77f
test eax, eax
jne 0x42b77f
push 0x3e8
mov ecx, 0x4a8038
call fcn.004305b0
mov ecx, dword [ebp - 0xf94]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xf98]
imul ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
je 0x42b7ee
cmp dword [0x4a8040], 0
mov ecx, 0x4a8038
push 0
push ebx
push 0x64
je 0x42b796
push 0
call fcn.00430390
mov ecx, 0x4a8038
call fcn.004305f0
push 0x64
push dword [0x4a8069]
mov ecx, 0x4a8038
call fcn.00430360
imul eax, dword [0x4bfdbd], 0x620
add eax, dword [0x4c38b8]
push dword [eax + 0x618]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x94
push dword [0x4c14e4]
call fcn.004510f0
add esp, 0x14
test eax, eax
je 0x42b7a1
lea eax, [ebp - 0x214]
mov ecx, 0x4a8038
push eax
call fcn.00430770
jmp 0x42b7a1
push 0x4a2abc
lea eax, [ebp - 0x102c]
mov dword [ebp - 0x102c], edi
push eax
call fcn.004698b9
push dword [0x4a8061]
call fcn.00430390
xor esi, esi
cmp esi, ebx
jae 0x42b7df
cmp dword [0x4c2e50], 0
jne 0x42b7df
test edi, edi
jne 0x42b7df
imul eax, esi, 0x430
add eax, dword [ebp - 0xf98]
cmp dword [eax + 0x428], edi
je 0x42b7cf
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push esi
mov ecx, 0x4a8038
call fcn.00430700
inc esi
jmp 0x42b7a3
push 0x3e8
mov ecx, 0x4a8038
call fcn.004305b0
lea ecx, [ebp - 0xf98]
call fcn.00429bd0
lea ecx, [ebp - 0xff4]
call fcn.00429bd0
lea ecx, [ebp - 0xfe4]
call fcn.00429bd0
lea ecx, [ebp - 0xfd8]
call fcn.00429bd0
jmp 0x42b86e
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x42b838
push eax
call fcn.00429520
add esp, 4
mov eax, 0xd
jmp 0x42b8ad
mov eax, dword [ebp - 0xf54]
mov dword [ebp - 4], 0
test eax, eax
je 0x42b886
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x4c2e50], 0
mov eax, 0x4c7
cmovne edi, eax
push edi
push str.ReadDataStruct____End__d_
call fcn.0045f520
add esp, 8
lea ecx, [ebp + 0x1c]
call fcn.00429bd0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004698aa
mov esp, ebp
pop ebp
ret