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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48a1d4
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1020
call fcn.0046f060
mov eax, dword [0x4af6f0]
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.0046f6e0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x624], ax
lea eax, [ebp - 0x622]
push eax
call fcn.0046f6e0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xb34], ax
lea eax, [ebp - 0xb32]
push eax
call fcn.0046f6e0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xd3c], ax
lea eax, [ebp - 0xd3a]
push eax
call fcn.0046f6e0
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x92c], ax
lea eax, [ebp - 0x92a]
push eax
call fcn.0046f6e0
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x214], ax
lea eax, [ebp - 0x212]
push eax
call fcn.0046f6e0
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 0x43e107
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x43e0fd
push eax
call fcn.0046e000
add esp, 4
mov eax, 2
jmp 0x43fa5a
push esi
lea eax, [ebp - 0xb34]
mov byte [ebp - 4], 1
push 0x104
push eax
call fcn.0046fd12
push esi
lea eax, [ebp - 0xd3c]
push 0x104
push eax
call fcn.0046fd12
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.004695f0
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.00440130
add esp, 0x14
test eax, eax
je 0x43f9c9
cmp dword [ebp - 0xfac], 0xffffffff
jne 0x43e1b3
cmp dword [ebp - 0xfa8], 0
je 0x43f9c9
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.004695f0
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.00440130
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.004695f0
add esp, 0xc
mov ecx, 0x4af010
cmp dword [0x4af018], 0
push 0
push dword [ebp - 0xfbc]
je 0x43e285
push 0x64
push 0
call fcn.00429060
push 1
push 0
mov ecx, 0x4af010
call fcn.00429030
jmp 0x43e28e
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 0x43ec56
cmp dword [ebp - 0xfac], 0xffffffff
jne 0x43e3b2
cmp dword [ebp - 0xfa8], 0
je 0x43ec56
cmp dword [ebp - 0xfe8], 0
je 0x43ec56
cmp dword [0x4b552c], 0
jne 0x43ec56
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.00440130
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.004695f0
mov eax, dword [ebp - 0xfa4]
add esp, 0x10
test eax, eax
je 0x43e4ce
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.00440130
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 0x43e868
xor ecx, ecx
mov word [ebp + eax - 0x41c], cx
lea eax, [ebp - 0x41c]
push eax
push str.ReadDataStruct____File_s
call fcn.004695f0
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.00440130
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.004695f0
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.00440130
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.004695f0
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.00440130
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.004695f0
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.00440130
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.004695f0
mov eax, dword [ebp - 0xf9c]
add esp, 8
test eax, eax
je 0x43e6e4
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.00440130
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 0x43e868
xor ecx, ecx
mov word [ebp + eax - 0x624], cx
lea eax, [ebp - 0x624]
push eax
push str.ReadDataStruct____FileOut_s
call fcn.004695f0
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.004414d0
imul esi, esi, 0x430
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp + 0x1c]
push 0x104
add eax, esi
push eax
call fcn.0046fd12
mov eax, dword [ebp + 0x1c]
add eax, esi
push eax
push str.ReadDataStruct____vDataFiles_i_.szFile_s
call fcn.00469290
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.0046fd12
mov eax, dword [ebp + 0x1c]
add eax, 0x208
add eax, esi
push eax
push str.ReadDataStruct____vDataFiles_i_.szFileOut_s
call fcn.00469290
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 0x43e985
mov esi, dword [ebp - 0x1018]
lea ecx, [ebp - 0xff4]
inc esi
push esi
mov dword [ebp - 0x1018], esi
call fcn.004414d0
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 0x43e86d
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.00469290
add esp, 8
jmp 0x43ec2c
call fcn.0046fea6
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.004414d0
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.0046fd12
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.00469290
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.00469290
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.00469290
add esp, 8
jmp 0x43ec2c
test al, 2
je 0x43ec2c
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.0043d560
add esp, 4
test eax, eax
jne 0x43e9f3
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 0x43eacc
lea eax, [ebp - 0x92c]
push eax
call fcn.0043d560
add esp, 4
test eax, eax
je 0x43ea1d
cmp dword [ebp + 0x28], 0
je 0x43eacc
mov esi, dword [ebp - 0x1014]
lea ecx, [ebp - 0xfe4]
inc esi
push esi
mov dword [ebp - 0x1014], esi
call fcn.004414d0
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 0x4b8380
push eax
call fcn.0043dd30
add esp, 0x10
test byte [ebp - 0xf45], 4
je 0x43eaba
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0xf58]
mov eax, dword [ebp - 0xfe4]
jmp 0x43eb77
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebp - 0xfe4]
jmp 0x43eb71
mov esi, dword [ebp - 0xfb0]
lea ecx, [ebp - 0xfd8]
inc esi
push esi
mov dword [ebp - 0xfb0], esi
call fcn.004414d0
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.0046fd12
add esp, 0xc
test byte [ebp - 0xf45], 4
je 0x43eb64
lea eax, [ebp - 0x624]
push eax
push dword [ebp - 0xf58]
mov eax, dword [ebp - 0xfd8]
jmp 0x43eb77
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 0x43ec2c
mov esi, dword [ebp - 0xf6c]
lea ecx, [ebp - 0xf98]
inc esi
push esi
mov dword [ebp - 0xf6c], esi
call fcn.004414d0
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.0046fd12
add esp, 0xc
mov eax, dword [ebp - 0xfc0]
mov ecx, 0x4af010
push 0
push eax
mov dword [ebp - 0xf68], eax
call fcn.004293d0
mov esi, dword [ebp - 0xfb4]
mov eax, dword [ebp - 0xf68]
jmp 0x43e390
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 0x43ee01
push dword [ebp - 0x100c]
mov ebx, dword [ebp - 0xf4c]
push dword [ebp - 0x1010]
add ebx, dword [0x4bd978]
mov esi, dword [ebp - 0xf50]
adc esi, dword [0x4bd97c]
push str.ReadDataStruct____FreeBytesAvailable_I64u
call fcn.004695f0
add esp, 0xc
push dword [0x4bd97c]
push dword [0x4bd978]
push str.ReadDataStruct____TotFilesSize_I64u
call fcn.004695f0
add esp, 0xc
push dword [ebp - 0xf50]
push dword [ebp - 0xf4c]
push str.ReadDataStruct____TotDataSize_I64u
call fcn.004695f0
add esp, 0xc
push esi
push ebx
push str.ReadDataStruct____TotNeedSize_I64u
call fcn.004695f0
add esp, 0xc
cmp esi, dword [ebp - 0x100c]
jb 0x43ee01
ja 0x43ed15
cmp ebx, dword [ebp - 0x1010]
jbe 0x43ee01
xor eax, eax
push 0x206
push eax
mov word [ebp - 0xf44], ax
lea eax, [ebp - 0xf42]
push eax
call fcn.0046f6e0
push dword [ebp - 0xf58]
lea eax, [ebp - 0xf44]
push 0x104
push eax
call fcn.0046fd12
add esp, 0x18
lea eax, [ebp - 0xf44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
imul eax, dword [0x4bd974], 0x306c
add eax, dword [0x4c900c]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x25e
push dword [0x4b5510]
call fcn.00467110
add esp, 0x14
test eax, eax
je 0x43edb9
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 0x4c8b10
call fcn.0046ebde
add esp, 0x18
lea ecx, [ebp - 0xf98]
mov dword [0x4c8d10], 0x70
call fcn.004619a0
lea ecx, [ebp - 0xff4]
call fcn.004619a0
lea ecx, [ebp - 0xfe4]
call fcn.004619a0
lea ecx, [ebp - 0xfd8]
call fcn.004619a0
lea ecx, [ebp + 0x1c]
call fcn.004619a0
mov eax, 0x70
jmp 0x43fa5a
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 0x43eee8
xor eax, eax
push 0xfe
push eax
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x722]
push eax
call fcn.0046f6e0
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.004479d0
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.00469290
add esp, 0x10
cmp dword [ebp - 0xf68], 5
je 0x43eee8
lea eax, [ebp - 0x724]
push eax
call fcn.004478d0
add esp, 4
test al, 2
je 0x43eeaa
cmp dword [0x4b552c], 0
je 0x43eee8
lea ecx, [ebp - 0xf98]
call fcn.004619a0
lea ecx, [ebp - 0xff4]
call fcn.004619a0
lea ecx, [ebp - 0xfe4]
call fcn.004619a0
lea ecx, [ebp - 0xfd8]
call fcn.004619a0
lea ecx, [ebp + 0x1c]
call fcn.004619a0
mov eax, 0x4ce
jmp 0x43fa5a
mov edx, dword [ebp - 0xfa0]
mov ecx, dword [ebp - 0xfc8]
call fcn.0046fbfe
mulsd xmm0, qword [str.ffffff]
call fcn.0046fae0
mov ecx, dword [ebp - 0x1004]
mov dword [ebp - 0xf58], edx
mov edx, dword [ebp - 0x1000]
mov dword [ebp - 0xf64], eax
call fcn.0046fbfe
mulsd xmm0, qword [0x493d98]
call fcn.0046fae0
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.004695f0
add esp, 0x1c
xorps xmm0, xmm0
movlpd qword [0x4af081], xmm0
test ebx, ebx
je 0x43f157
imul eax, dword [0x4bd974], 0x306c
add eax, dword [0x4c900c]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8b
push dword [0x4b5510]
call fcn.00467110
add esp, 0x14
test eax, eax
je 0x43eff3
lea eax, [ebp - 0x214]
mov ecx, 0x4af010
push eax
call fcn.00429440
mov edx, dword [ebp - 0xf6c]
mov ecx, esi
call fcn.0046fbfe
cmp dword [0x4af018], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x43f07e
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf6c]
mov esi, eax
mov ecx, 0x4af010
push dword [ebp - 0xfb4]
add esi, dword [0x4af041]
push 0x64
push 0
call fcn.00429060
mov ecx, 0x4af010
call fcn.004292c0
push esi
push dword [0x4af041]
mov ecx, 0x4af010
call fcn.00429030
jmp 0x43f0c9
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf6c]
mov esi, eax
mov ecx, 0x4af010
mov eax, dword [0x4af039]
add esi, eax
push dword [ebp - 0xfb4]
push esi
push eax
call fcn.00429060
push esi
push str.ReadDataStruct____Status1_u
call fcn.004695f0
add esp, 8
xor esi, esi
lea esp, [esp]
cmp esi, ebx
jae 0x43f148
cmp dword [0x4b552c], 0
jne 0x43f148
test edi, edi
jne 0x43f148
mov ecx, dword [ebp - 0xfe4]
push dword [ebp + 0x2c]
imul eax, esi, 0x430
add ecx, eax
lea eax, [ecx + 0x208]
push eax
push 0x48c8a4
push 0x48c8a4
push ecx
call fcn.00446970
add esp, 0x14
test eax, eax
je 0x43f145
push 0x4a93ac
lea eax, [ebp - 0x1024]
mov dword [ebp - 0xf8c], 0x4d4
push eax
mov dword [ebp - 0x1024], 0x4d4
call fcn.0046ec09
inc esi
jmp 0x43f0e0
push 0x3e8
mov ecx, 0x4af010
call fcn.00429280
xorps xmm0, xmm0
mov ecx, 0x4af010
push 0x3e8
movlpd qword [0x4af081], 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 0x43f3ba
imul eax, dword [0x4bd974], 0x306c
add eax, dword [0x4c900c]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8f
push dword [0x4b5510]
call fcn.00467110
add esp, 0x14
test eax, eax
je 0x43f1e4
lea eax, [ebp - 0x214]
mov ecx, 0x4af010
push eax
call fcn.00429440
mov edx, dword [ebp - 0xf84]
mov ecx, dword [ebp - 0xf88]
call fcn.0046fbfe
cmp dword [0x4af018], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x43f279
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf84]
mov ebx, eax
mov ecx, 0x4af010
push dword [ebp - 0xf88]
add ebx, dword [0x4af041]
push 0x64
push 0
mov dword [ebp - 0xfb4], ebx
call fcn.00429060
mov ecx, 0x4af010
call fcn.004292c0
push ebx
push dword [0x4af041]
mov ecx, 0x4af010
call fcn.00429030
jmp 0x43f2ca
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf84]
mov ebx, eax
mov ecx, 0x4af010
mov eax, dword [0x4af039]
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.004695f0
add esp, 8
mov dword [ebp - 0xfb0], esi
xor ebx, ebx
mov ecx, esi
mov eax, dword [0x4b552c]
cmp ebx, esi
jae 0x43f38f
test eax, eax
jne 0x43f38f
test edi, edi
jne 0x43f500
imul esi, ebx, 0x430
add esi, dword [ebp - 0xfd8]
push dword [esi + 0x41c]
push dword [esi + 0x418]
push ecx
mov ecx, 0x4af010
cmp dword [0x4af018], edi
je 0x43f329
push 0x64
jmp 0x43f32f
push dword [ebp - 0xfb4]
call fcn.004290e0
mov eax, dword [0x4b7f6c]
neg eax
sbb eax, eax
and eax, 0x200000
or eax, 0x400000
push eax
lea eax, [esi + 0x208]
push eax
push esi
call fcn.004686e0
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.00469290
mov ecx, dword [ebp - 0xfb0]
add esp, 0x10
mov esi, dword [ebp - 0xfc0]
inc ebx
dec ecx
mov dword [ebp - 0xfb0], ecx
jmp 0x43f2e2
test edi, edi
jne 0x43f500
test eax, eax
jne 0x43f500
mov ecx, 0x4af010
push 0x3e8
cmp dword [0x4af018], eax
je 0x43f4f6
call fcn.00429240
mov ecx, dword [ebp - 0xff0]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xff4]
xorps xmm0, xmm0
imul ecx
movlpd qword [0x4af081], xmm0
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [ebp - 0xfc0], esi
je 0x43f67a
imul eax, dword [0x4bd974], 0x306c
add eax, dword [0x4c900c]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x8e
push dword [0x4b5510]
call fcn.00467110
add esp, 0x14
test eax, eax
je 0x43f438
lea eax, [ebp - 0x214]
mov ecx, 0x4af010
push eax
call fcn.00429440
cmp dword [0x4af018], 0
je 0x43f517
push dword [ebp - 0xf4c]
mov ebx, dword [ebp - 0xf50]
push ebx
push dword [ebp - 0xf7c]
push dword [ebp - 0xf80]
push dword [0x4af041]
push str.ReadDataStruct____MaxMainBarStep_u_TotSizeFilesToExtract_I64u_TotSize_I64u
call fcn.004695f0
mov edx, dword [ebp - 0xf7c]
add esp, 0x18
mov ecx, dword [ebp - 0xf80]
call fcn.0046fbfe
mov edx, dword [ebp - 0xf4c]
mov ecx, ebx
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf7c]
mov ebx, eax
mov ecx, 0x4af010
push dword [ebp - 0xf80]
add ebx, dword [0x4af041]
push 0x64
push 0
call fcn.00429060
mov ecx, 0x4af010
call fcn.004292c0
push ebx
push dword [0x4af041]
mov ecx, 0x4af010
call fcn.00429030
jmp 0x43f57f
call fcn.00429280
jmp 0x43f3ba
push 0x4a93ac
lea eax, [ebp - 0x1028]
mov dword [ebp - 0x1028], edi
push eax
call fcn.0046ec09
mov edx, dword [ebp - 0xf7c]
mov ecx, dword [ebp - 0xf80]
call fcn.0046fbfe
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf7c]
mov ebx, eax
mov ecx, 0x4af010
mov eax, dword [0x4af039]
add ebx, eax
push dword [ebp - 0xf80]
push ebx
push eax
call fcn.00429060
push ebx
push str.ReadDataStruct____Status3_u
call fcn.004695f0
add esp, 8
xor ebx, ebx
nop
mov eax, dword [0x4b552c]
cmp ebx, esi
jae 0x43f65b
test eax, eax
jne 0x43f65b
test edi, edi
jne 0x43f785
mov ecx, dword [ebp - 0xff4]
push edi
push dword [0x4b7f6c]
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 0x48c8a4
push dword [ebp - 0xf54]
call fcn.00466960
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.00469290
mov esi, dword [ebp - 0xfc0]
add esp, 0x20
inc ebx
jmp 0x43f590
test edi, edi
jne 0x43f785
test eax, eax
jne 0x43f785
push 0x3e8
mov ecx, 0x4af010
call fcn.00429280
mov ecx, dword [ebp - 0xf94]
mov eax, 0x7a44c6b
sub ecx, dword [ebp - 0xf98]
xorps xmm0, xmm0
imul ecx
movlpd qword [0x4af081], xmm0
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
je 0x43f885
imul eax, dword [0x4bd974], 0x306c
add eax, dword [0x4c900c]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x91
push dword [0x4b5510]
call fcn.00467110
add esp, 0x14
test eax, eax
je 0x43f6f2
lea eax, [ebp - 0x214]
mov ecx, 0x4af010
push eax
call fcn.00429440
mov edx, dword [ebp - 0xf58]
mov ecx, dword [ebp - 0xf64]
call fcn.0046fbfe
cmp dword [0x4af018], 0
mov edx, dword [ebp - 0xf4c]
mov ecx, dword [ebp - 0xf50]
je 0x43f79c
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf58]
mov ebx, eax
mov ecx, 0x4af010
push dword [ebp - 0xf64]
add ebx, dword [0x4af041]
push 0x64
push 0
call fcn.00429060
mov ecx, 0x4af010
call fcn.004292c0
push ebx
push dword [0x4af041]
mov ecx, 0x4af010
call fcn.00429030
jmp 0x43f7e7
push 0x4a93ac
lea eax, [ebp - 0x1030]
mov dword [ebp - 0x1030], edi
push eax
call fcn.0046ec09
movsd qword [ebp - 0xf78], xmm0
call fcn.0046fbfe
movsd xmm1, qword [ebp - 0xf78]
divsd xmm1, xmm0
mulsd xmm1, qword [0x493da0]
movapd xmm0, xmm1
call fcn.0046fad1
push dword [ebp - 0xf58]
mov ebx, eax
mov ecx, 0x4af010
mov eax, dword [0x4af039]
add ebx, eax
push dword [ebp - 0xf64]
push ebx
push eax
call fcn.00429060
push ebx
push str.ReadDataStruct____Status4_u
call fcn.00469290
add esp, 8
mov eax, dword [0x4b552c]
test esi, esi
je 0x43f866
test eax, eax
jne 0x43f866
test edi, edi
jne 0x43f92a
mov ebx, dword [ebp - 0xf98]
push dword [0x4b7f58]
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.00468100
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.00469290
add esp, 0x10
dec esi
jmp 0x43f7f5
test edi, edi
jne 0x43f92a
test eax, eax
jne 0x43f92a
push 0x3e8
mov ecx, 0x4af010
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 0x43f99b
imul eax, dword [0x4bd974], 0x306c
add eax, dword [0x4c900c]
push dword [eax + 0x3058]
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0x94
push dword [0x4b5510]
call fcn.00467110
add esp, 0x14
test eax, eax
je 0x43f8f2
lea eax, [ebp - 0x214]
mov ecx, 0x4af010
push eax
call fcn.00429440
cmp dword [0x4af018], 0
mov ecx, 0x4af010
push 0
push ebx
push 0x64
je 0x43f941
push 0
call fcn.00429060
mov ecx, 0x4af010
call fcn.004292c0
push 0x64
push dword [0x4af041]
mov ecx, 0x4af010
call fcn.00429030
jmp 0x43f94c
push 0x4a93ac
lea eax, [ebp - 0x102c]
mov dword [ebp - 0x102c], edi
push eax
call fcn.0046ec09
push dword [0x4af039]
call fcn.00429060
xor esi, esi
mov edi, edi
cmp esi, ebx
jae 0x43f98c
cmp dword [0x4b552c], 0
jne 0x43f98c
test edi, edi
jne 0x43f98c
imul eax, esi, 0x430
add eax, dword [ebp - 0xf98]
cmp dword [eax + 0x428], edi
je 0x43f97c
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0
push esi
mov ecx, 0x4af010
call fcn.004293d0
inc esi
jmp 0x43f950
push 0x3e8
mov ecx, 0x4af010
call fcn.00429280
lea ecx, [ebp - 0xf98]
call fcn.004619a0
lea ecx, [ebp - 0xff4]
call fcn.004619a0
lea ecx, [ebp - 0xfe4]
call fcn.004619a0
lea ecx, [ebp - 0xfd8]
call fcn.004619a0
jmp 0x43fa1b
push dword [ebp - 0xf54]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x43f9e5
push eax
call fcn.0046e000
add esp, 4
mov eax, 0xd
jmp 0x43fa5a
mov eax, dword [ebp - 0xf54]
mov dword [ebp - 4], 0
test eax, eax
je 0x43fa33
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x4b552c], 0
mov eax, 0x4c7
cmovne edi, eax
push edi
push str.ReadDataStruct____End__d_
call fcn.00469290
add esp, 8
lea ecx, [ebp + 0x1c]
call fcn.004619a0
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.0046ebfa
mov esp, ebp
pop ebp
ret