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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48a914
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1020
call fcn.0046f7a0
mov eax, dword [0x4b06f0]
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.0046fe20
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x624], ax
lea eax, [ebp - 0x622]
push eax
call fcn.0046fe20
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xb34], ax
lea eax, [ebp - 0xb32]
push eax
call fcn.0046fe20
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xd3c], ax
lea eax, [ebp - 0xd3a]
push eax
call fcn.0046fe20
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x92c], ax
lea eax, [ebp - 0x92a]
push eax
call fcn.0046fe20
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x214], ax
lea eax, [ebp - 0x212]
push eax
call fcn.0046fe20
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 0x43e187
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x43e17d
push eax
call fcn.0046e740
add esp, 4
mov eax, 2
jmp 0x43fada
push esi
lea eax, [ebp - 0xb34]
mov byte [ebp - 4], 1
push 0x104
push eax
call fcn.00470452
push esi
lea eax, [ebp - 0xd3c]
push 0x104
push eax
call fcn.00470452
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.00469d40
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.00440230
add esp, 0x14
test eax, eax
je 0x43fa49
cmp dword [ebp - 0xfac], 0xffffffff
jne 0x43e233
cmp dword [ebp - 0xfa8], 0
je 0x43fa49
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.00469d40
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.00440230
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.00469d40
add esp, 0xc
mov ecx, 0x4b0010
cmp dword [0x4b0018], 0
push 0
push dword [ebp - 0xfbc]
je 0x43e305
push 0x64
push 0
call fcn.00429060
push 1
push 0
mov ecx, 0x4b0010
call fcn.00429030
jmp 0x43e30e
push 3
push 0
call fcn.00429060
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 0x43ecd6
cmp dword [ebp - 0xfac], 0xffffffff
jne 0x43e432
cmp dword [ebp - 0xfa8], 0
je 0x43ecd6
cmp dword [ebp - 0xfe8], 0
je 0x43ecd6
cmp dword [0x4b6534], 0
jne 0x43ecd6
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.00440230
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.00469d40
mov eax, dword [ebp - 0xfa4]
add esp, 0x10
test eax, eax
je 0x43e54e
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.00440230
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 0x43e8e8
xor ecx, ecx
mov word [ebp + eax - 0x41c], cx
lea eax, [ebp - 0x41c]
push eax
push str.ReadDataStruct____File_s
call fcn.00469d40
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.00440230
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.00469d40
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.00440230
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.00469d40
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.00440230
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.00469d40
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.00440230
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.00469d40
mov eax, dword [ebp - 0xf9c]
add esp, 8
test eax, eax
je 0x43e764
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.00440230
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 0x43e8e8
xor ecx, ecx
mov word [ebp + eax - 0x624], cx
lea eax, [ebp - 0x624]
push eax
push str.ReadDataStruct____FileOut_s
call fcn.00469d40
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.004415d0
imul esi, esi, 0x430
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp + 0x1c]
push 0x104
add eax, esi
push eax
call fcn.00470452
mov eax, dword [ebp + 0x1c]
add eax, esi
push eax
push str.ReadDataStruct____vDataFiles_i_.szFile_s
call fcn.004699e0
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.00470452
mov eax, dword [ebp + 0x1c]
add eax, 0x208
add eax, esi
push eax
push str.ReadDataStruct____vDataFiles_i_.szFileOut_s
call fcn.004699e0
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 0x43ea05
mov esi, dword [ebp - 0x1018]
lea ecx, [ebp - 0xff4]
inc esi
push esi
mov dword [ebp - 0x1018], esi
call fcn.004415d0
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 0x43e8ed
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.004699e0
add esp, 8
jmp 0x43ecac
call fcn.004705e6
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.004415d0
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.00470452
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.004699e0
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.004699e0
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.004699e0
add esp, 8
jmp 0x43ecac
test al, 2
je 0x43ecac
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.0043d5d0
add esp, 4
test eax, eax
jne 0x43ea73
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 0x43eb4c
lea eax, [ebp - 0x92c]
push eax
call fcn.0043d5d0
add esp, 4
test eax, eax
je 0x43ea9d
cmp dword [ebp + 0x28], 0
je 0x43eb4c
mov esi, dword [ebp - 0x1014]
lea ecx, [ebp - 0xfe4]
inc esi
push esi
mov dword [ebp - 0x1014], esi
call fcn.004415d0
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 0x4b938c
push eax
call fcn.0043dda0
add esp, 0x10
test byte [ebp - 0xf45], 4
je 0x43eb3a
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0xf58]
mov eax, dword [ebp - 0xfe4]
jmp 0x43ebf7
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp - 0xfe4]
jmp 0x43ebf1
mov esi, dword [ebp - 0xfb0]
lea ecx, [ebp - 0xfd8]
inc esi
push esi
mov dword [ebp - 0xfb0], esi
call fcn.004415d0
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.00470452
add esp, 0xc
test byte [ebp - 0xf45], 4
je 0x43ebe4
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0xf58]
mov eax, dword [ebp - 0xfd8]
jmp 0x43ebf7
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 0x43ecac
mov esi, dword [ebp - 0xf6c]
lea ecx, [ebp - 0xf98]
inc esi
push esi
mov dword [ebp - 0xf6c], esi
call fcn.004415d0
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.00470452
add esp, 0xc
mov eax, dword [ebp - 0xfc0]
mov ecx, 0x4b0010
push 0
push eax
mov dword [ebp - 0xf68], eax
call fcn.004293d0
mov esi, dword [ebp - 0xfb4]
mov eax, dword [ebp - 0xf68]
jmp 0x43e410
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 0x43ee81
push dword [ebp - 0x100c]
mov ebx, dword [ebp - 0xf4c]
push dword [ebp - 0x1010]
add ebx, dword [0x4be988]
mov esi, dword [ebp - 0xf50]
adc esi, dword [0x4be98c]
push str.ReadDataStruct____FreeBytesAvailable:__I64u
call fcn.00469d40
add esp, 0xc
push dword [0x4be98c]
push dword [0x4be988]
push str.ReadDataStruct____TotFilesSize:__I64u
call fcn.00469d40
add esp, 0xc
push dword [ebp - 0xf50]
push dword [ebp - 0xf4c]
push str.ReadDataStruct____TotDataSize:__I64u
call fcn.00469d40
add esp, 0xc
push esi
push ebx
push str.ReadDataStruct____TotNeedSize:__I64u
call fcn.00469d40
add esp, 0xc
cmp esi, dword [ebp - 0x100c]
jb 0x43ee81
ja 0x43ed95
cmp ebx, dword [ebp - 0x1010]
jbe 0x43ee81
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xf44], ax
lea eax, [ebp - 0xf42]
push eax
call fcn.0046fe20
push dword [ebp - 0xf58]
lea eax, [ebp - 0xf44]
push 0x104
push eax
call fcn.00470452
add esp, 0x18
lea eax, [ebp - 0xf44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
imul eax, dword [0x4be980], 0x306c
add eax, dword [0x4ca5ec]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x25e
push dword [0x4b6518]
call fcn.00467850
add esp, 0x14
test eax, eax
je 0x43ee39
shrd ebx, esi, 0xa
lea eax, [ebp - 0xf44]
push eax
shr esi, 0xa
lea eax, [ebp - 0x214]
push esi
push ebx
push eax
push 0x3e8
push 0x4c9b20
call fcn.0046f31e
add esp, 0x18
lea ecx, [ebp - 0xf98]
mov dword [0x4ca2f0], 0x70
call fcn.00462050
lea ecx, [ebp - 0xff4]
call fcn.00462050
lea ecx, [ebp - 0xfe4]
call fcn.00462050
lea ecx, [ebp - 0xfd8]
call fcn.00462050
lea ecx, [ebp + 0x1c]
call fcn.00462050
mov eax, 0x70
jmp 0x43fada
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 0x43ef68
xor eax, eax
push 0xfe
push eax
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
push eax
call fcn.0046fe20
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.00447e30
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.004699e0
add esp, 0x10
cmp dword [ebp - 0xf68], 5
je 0x43ef68
lea eax, [ebp - 0x724]
push eax
call fcn.00447d20
add esp, 4
test al, 2
je 0x43ef2a
cmp dword [0x4b6534], 0
je 0x43ef68
lea ecx, [ebp - 0xf98]
call fcn.00462050
lea ecx, [ebp - 0xff4]
call fcn.00462050
lea ecx, [ebp - 0xfe4]
call fcn.00462050
lea ecx, [ebp - 0xfd8]
call fcn.00462050
lea ecx, [ebp + 0x1c]
call fcn.00462050
mov eax, 0x4ce
jmp 0x43fada
mov edx, dword [ebp - 0xfa0]
mov ecx, dword [ebp - 0xfc8]
call fcn.0047033e
mulsd xmm0, qword [str.ffffff]
call fcn.00470220
mov ecx, dword [ebp - 0x1004]
mov dword [ebp - 0xf58], edx
mov edx, dword [ebp - 0x1000]
mov dword [ebp - 0xf64], eax
call fcn.0047033e
mulsd xmm0, qword [0x494da8]
call fcn.00470220
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.00469d40
add esp, 0x1c
xorps xmm0, xmm0
movlpd qword [0x4b0081], xmm0
test ebx, ebx
je 0x43f1d7
imul eax, dword [0x4be980], 0x306c
add eax, dword [0x4ca5ec]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8b
push dword [0x4b6518]
call fcn.00467850
add esp, 0x14
test eax, eax
je 0x43f073
lea eax, [ebp - 0x214]
mov ecx, 0x4b0010
push eax
call fcn.00429440
mov edx, dword [ebp - 0xf6c]
mov ecx, esi
call fcn.0047033e
cmp dword [0x4b0018], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x43f0fe
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf6c]
mov esi, eax
mov ecx, 0x4b0010
push dword [ebp - 0xfb4]
add esi, dword [0x4b0041]
push 0x64
push 0
call fcn.00429060
mov ecx, 0x4b0010
call fcn.004292c0
push esi
push dword [0x4b0041]
mov ecx, 0x4b0010
call fcn.00429030
jmp 0x43f149
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf6c]
mov esi, eax
mov ecx, 0x4b0010
mov eax, dword [0x4b0039]
add esi, eax
push dword [ebp - 0xfb4]
push esi
push eax
call fcn.00429060
push esi
push str.ReadDataStruct____Status1:__u
call fcn.00469d40
add esp, 8
xor esi, esi
lea esp, [esp]
cmp esi, ebx
jae 0x43f1c8
cmp dword [0x4b6534], 0
jne 0x43f1c8
test edi, edi
jne 0x43f1c8
mov ecx, dword [ebp - 0xfe4]
push dword [ebp + 0x2c]
imul eax, esi, 0x430
add ecx, eax
lea eax, [ecx + 0x208]
push eax
push 0x48d8a4
push 0x48d8a4
push ecx
call fcn.00446dc0
add esp, 0x14
test eax, eax
je 0x43f1c5
push 0x4aa6ac
lea eax, [ebp - 0x1024]
mov dword [ebp - 0xf8c], 0x4d4
push eax
mov dword [ebp - 0x1024], 0x4d4
call fcn.0046f349
inc esi
jmp 0x43f160
push 0x3e8
mov ecx, 0x4b0010
call fcn.00429280
xorps xmm0, xmm0
mov ecx, 0x4b0010
push 0x3e8
movlpd qword [0x4b0081], xmm0
call fcn.00429280
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 0x43f43a
imul eax, dword [0x4be980], 0x306c
add eax, dword [0x4ca5ec]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8f
push dword [0x4b6518]
call fcn.00467850
add esp, 0x14
test eax, eax
je 0x43f264
lea eax, [ebp - 0x214]
mov ecx, 0x4b0010
push eax
call fcn.00429440
mov edx, dword [ebp - 0xf84]
mov ecx, dword [ebp - 0xf88]
call fcn.0047033e
cmp dword [0x4b0018], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x43f2f9
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf84]
mov ebx, eax
mov ecx, 0x4b0010
push dword [ebp - 0xf88]
add ebx, dword [0x4b0041]
push 0x64
push 0
mov dword [ebp - 0xfb4], ebx
call fcn.00429060
mov ecx, 0x4b0010
call fcn.004292c0
push ebx
push dword [0x4b0041]
mov ecx, 0x4b0010
call fcn.00429030
jmp 0x43f34a
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf84]
mov ebx, eax
mov ecx, 0x4b0010
mov eax, dword [0x4b0039]
add ebx, eax
push dword [ebp - 0xf88]
mov dword [ebp - 0xfb4], ebx
push ebx
push eax
call fcn.00429060
push ebx
push str.ReadDataStruct____Status2:__u
call fcn.00469d40
add esp, 8
mov dword [ebp - 0xfb0], esi
xor ebx, ebx
mov ecx, esi
mov eax, dword [0x4b6534]
cmp ebx, esi
jae 0x43f40f
test eax, eax
jne 0x43f40f
test edi, edi
jne 0x43f580
imul esi, ebx, 0x430
add esi, dword [ebp - 0xfd8]
push dword [esi + 0x41c]
push dword [esi + 0x418]
push ecx
mov ecx, 0x4b0010
cmp dword [0x4b0018], edi
je 0x43f3a9
push 0x64
jmp 0x43f3af
push dword [ebp - 0xfb4]
call fcn.004290e0
mov eax, dword [0x4b8f78]
neg eax
sbb eax, eax
and eax, 0x200000
or eax, 0x400000
push eax
lea eax, [esi + 0x208]
push eax
push esi
call fcn.00468e20
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.004699e0
mov ecx, dword [ebp - 0xfb0]
add esp, 0x10
mov esi, dword [ebp - 0xfc0]
inc ebx
dec ecx
mov dword [ebp - 0xfb0], ecx
jmp 0x43f362
test edi, edi
jne 0x43f580
test eax, eax
jne 0x43f580
mov ecx, 0x4b0010
push 0x3e8
cmp dword [0x4b0018], eax
je 0x43f576
call fcn.00429240
mov ecx, dword [ebp - 0xff0]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xff4]
xorps xmm0, xmm0
imul ecx
movlpd qword [0x4b0081], xmm0
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [ebp - 0xfc0], esi
je 0x43f6fa
imul eax, dword [0x4be980], 0x306c
add eax, dword [0x4ca5ec]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8e
push dword [0x4b6518]
call fcn.00467850
add esp, 0x14
test eax, eax
je 0x43f4b8
lea eax, [ebp - 0x214]
mov ecx, 0x4b0010
push eax
call fcn.00429440
cmp dword [0x4b0018], 0
je 0x43f597
push dword [ebp - 0xf4c]
mov ebx, dword [ebp - 0xf50]
push ebx
push dword [ebp - 0xf7c]
push dword [ebp - 0xf80]
push dword [0x4b0041]
push str.ReadDataStruct____MaxMainBarStep_u_TotSizeFilesToExtract_I64u_TotSize_I64u
call fcn.00469d40
mov edx, dword [ebp - 0xf7c]
add esp, 0x18
mov ecx, dword [ebp - 0xf80]
call fcn.0047033e
mov edx, dword [ebp - 0xf4c]
mov ecx, ebx
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf7c]
mov ebx, eax
mov ecx, 0x4b0010
push dword [ebp - 0xf80]
add ebx, dword [0x4b0041]
push 0x64
push 0
call fcn.00429060
mov ecx, 0x4b0010
call fcn.004292c0
push ebx
push dword [0x4b0041]
mov ecx, 0x4b0010
call fcn.00429030
jmp 0x43f5ff
call fcn.00429280
jmp 0x43f43a
push 0x4aa6ac
lea eax, [ebp - 0x1028]
mov dword [ebp - 0x1028], edi
push eax
call fcn.0046f349
mov edx, dword [ebp - 0xf7c]
mov ecx, dword [ebp - 0xf80]
call fcn.0047033e
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf7c]
mov ebx, eax
mov ecx, 0x4b0010
mov eax, dword [0x4b0039]
add ebx, eax
push dword [ebp - 0xf80]
push ebx
push eax
call fcn.00429060
push ebx
push str.ReadDataStruct____Status3:__u
call fcn.00469d40
add esp, 8
xor ebx, ebx
nop
mov eax, dword [0x4b6534]
cmp ebx, esi
jae 0x43f6db
test eax, eax
jne 0x43f6db
test edi, edi
jne 0x43f805
mov ecx, dword [ebp - 0xff4]
push edi
push dword [0x4b8f78]
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 0x48d8a4
push dword [ebp - 0xf54]
call fcn.004670a0
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.004699e0
mov esi, dword [ebp - 0xfc0]
add esp, 0x20
inc ebx
jmp 0x43f610
test edi, edi
jne 0x43f805
test eax, eax
jne 0x43f805
push 0x3e8
mov ecx, 0x4b0010
call fcn.00429280
mov ecx, dword [ebp - 0xf94]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xf98]
xorps xmm0, xmm0
imul ecx
movlpd qword [0x4b0081], xmm0
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
je 0x43f905
imul eax, dword [0x4be980], 0x306c
add eax, dword [0x4ca5ec]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x91
push dword [0x4b6518]
call fcn.00467850
add esp, 0x14
test eax, eax
je 0x43f772
lea eax, [ebp - 0x214]
mov ecx, 0x4b0010
push eax
call fcn.00429440
mov edx, dword [ebp - 0xf58]
mov ecx, dword [ebp - 0xf64]
call fcn.0047033e
cmp dword [0x4b0018], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x43f81c
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf58]
mov ebx, eax
mov ecx, 0x4b0010
push dword [ebp - 0xf64]
add ebx, dword [0x4b0041]
push 0x64
push 0
call fcn.00429060
mov ecx, 0x4b0010
call fcn.004292c0
push ebx
push dword [0x4b0041]
mov ecx, 0x4b0010
call fcn.00429030
jmp 0x43f867
push 0x4aa6ac
lea eax, [ebp - 0x1030]
mov dword [ebp - 0x1030], edi
push eax
call fcn.0046f349
movsd qword [ebp - 0xf78], xmm0
call fcn.0047033e
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x494db0]
movapd xmm0, xmm1
call fcn.00470211
push dword [ebp - 0xf58]
mov ebx, eax
mov ecx, 0x4b0010
mov eax, dword [0x4b0039]
add ebx, eax
push dword [ebp - 0xf64]
push ebx
push eax
call fcn.00429060
push ebx
push str.ReadDataStruct____Status4_u
call fcn.004699e0
add esp, 8
mov eax, dword [0x4b6534]
test esi, esi
je 0x43f8e6
test eax, eax
jne 0x43f8e6
test edi, edi
jne 0x43f9aa
mov ebx, dword [ebp - 0xf98]
push dword [0x4b8f64]
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.00468840
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.004699e0
add esp, 0x10
dec esi
jmp 0x43f875
test edi, edi
jne 0x43f9aa
test eax, eax
jne 0x43f9aa
push 0x3e8
mov ecx, 0x4b0010
call fcn.00429280
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 0x43fa1b
imul eax, dword [0x4be980], 0x306c
add eax, dword [0x4ca5ec]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x94
push dword [0x4b6518]
call fcn.00467850
add esp, 0x14
test eax, eax
je 0x43f972
lea eax, [ebp - 0x214]
mov ecx, 0x4b0010
push eax
call fcn.00429440
cmp dword [0x4b0018], 0
mov ecx, 0x4b0010
push 0
push ebx
push 0x64
je 0x43f9c1
push 0
call fcn.00429060
mov ecx, 0x4b0010
call fcn.004292c0
push 0x64
push dword [0x4b0041]
mov ecx, 0x4b0010
call fcn.00429030
jmp 0x43f9cc
push 0x4aa6ac
lea eax, [ebp - 0x102c]
mov dword [ebp - 0x102c], edi
push eax
call fcn.0046f349
push dword [0x4b0039]
call fcn.00429060
xor esi, esi
mov edi, edi
cmp esi, ebx
jae 0x43fa0c
cmp dword [0x4b6534], 0
jne 0x43fa0c
test edi, edi
jne 0x43fa0c
imul eax, esi, 0x430
add eax, dword [ebp - 0xf98]
cmp dword [eax + 0x428], edi
je 0x43f9fc
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push esi
mov ecx, 0x4b0010
call fcn.004293d0
inc esi
jmp 0x43f9d0
push 0x3e8
mov ecx, 0x4b0010
call fcn.00429280
lea ecx, [ebp - 0xf98]
call fcn.00462050
lea ecx, [ebp - 0xff4]
call fcn.00462050
lea ecx, [ebp - 0xfe4]
call fcn.00462050
lea ecx, [ebp - 0xfd8]
call fcn.00462050
jmp 0x43fa9b
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x43fa65
push eax
call fcn.0046e740
add esp, 4
mov eax, 0xd
jmp 0x43fada
mov eax, dword [ebp - 0xf54]
mov dword [ebp - 4], 0
test eax, eax
je 0x43fab3
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x4b6534], 0
mov eax, 0x4c7
cmovne edi, eax
push edi
push str.ReadDataStruct____End__d_
call fcn.004699e0
add esp, 8
lea ecx, [ebp + 0x1c]
call fcn.00462050
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.0046f33a
mov esp, ebp
pop ebp
ret