Function at 0x402a90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x21c8
call fcn.004e50f0
mov eax, dword [0x581900]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x21b8], eax
xor edi, edi
mov eax, dword [ebp + 0x14]
push 0x800
mov dword [ebp - 0x2194], eax
lea eax, [ebp - 0x83c]
push edi
push eax
mov dword [ebp - 0x214c], ebx
mov dword [ebp - 0x216c], edi
mov dword [ebp - 0x2164], edi
mov dword [ebp - 0x2154], edi
call fcn.004e69c0
push 0x800
lea eax, [ebp - 0x1940]
push edi
push eax
call fcn.004e69c0
push 0x800
lea eax, [ebp - 0x103c]
push edi
push eax
call fcn.004e69c0
push 0x104
lea eax, [ebp - 0x1140]
push edi
push eax
call fcn.004e69c0
xor eax, eax
mov dword [ebp - 0x2160], edi
xorps xmm0, xmm0
mov dword [ebp - 0x21a4], edi
push ebx
mov dword [ebp - 0x21b4], edi
movlpd qword [ebp - 0x21b0], xmm0
mov dword [ebp - 0x2198], edi
mov dword [ebp - 0x2150], eax
mov dword [0x583260], eax
call fcn.004a73a0
add esp, 0x34
test eax, eax
jne 0x403d27
test esi, esi
je 0x402b71
push 0x800
push esi
jmp 0x402ba8
mov esi, dword [ebp - 0x21b8]
push esi
call fcn.004a73a0
add esp, 4
push 0x800
test eax, eax
jne 0x402ba7
lea eax, [ebp - 0x103c]
push esi
push eax
call fcn.004a9a20
lea eax, [ebp - 0x103c]
push eax
call fcn.004a8490
add esp, 0x10
jmp 0x402bb7
push ebx
lea eax, [ebp - 0x103c]
push eax
call fcn.004a9a20
add esp, 0xc
lea eax, [ebp - 0x103c]
push eax
push ebx
call fcn.004eeba8
add esp, 8
test eax, eax
jne 0x402c04
lea eax, [ebp - 0x103c]
push eax
call fcn.004a8370
lea ecx, [ebp - 0x103c]
add esp, 4
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x402be1
mov eax, dword [str._Unpacked]
mov dword [ecx], eax
mov eax, dword [0x50a58c]
mov dword [ecx + 4], eax
mov ax, word [0x50a590]
mov word [ecx + 8], ax
push 0x159
push str.C:UsersOfficeDocumentsVisual_StudioPAULAArchive.c
push 0x50a5d0
push ebx
call fcn.0042c170
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x2148], ebx
test ebx, ebx
jne 0x402c54
mov ebx, dword [ebp - 0x214c]
push ebx
call fcn.004289f0
add esp, 4
test eax, eax
je 0x403d27
push 0
push ebx
push str.:5:ExpandArchive___FAILED:_fopen___s____rb___FAILED:_The_given_source_archive_exists_but_cannot_be_opened_for_reading_:_bIsTempSourceUsed_d
call fcn.00424a90
add esp, 0xc
jmp 0x403d27
mov esi, dword [ebp - 0x214c]
push 0x50a668
push esi
call fcn.004a5b00
add esp, 4
push eax
call fcn.004eeba8
add esp, 8
test eax, eax
jne 0x402c9d
cmp dword [ebp + 0x1c], edi
je 0x402c87
push str._nLooking_for_self_extraction...
call fcn.00413650
add esp, 4
push esi
call fcn.004040a0
mov esi, eax
push 0
push esi
push ebx
call fcn.004e95db
add esp, 0x10
jmp 0x402c9f
xor esi, esi
push ebx
push 1
lea eax, [ebp - 0x21b4]
push 4
push eax
call fcn.004e91b7
add esp, 0x10
cmp dword [ebp + 0x1c], edi
je 0x402cc5
push str._nValidating_CheckSum...
call fcn.00413650
add esp, 4
push ebx
push 1
lea eax, [ebp - 0x21a4]
push 4
push eax
call fcn.004e91b7
push 0
push dword [ebp - 0x21b4]
push ebx
call fcn.004022c0
mov ebx, eax
lea eax, [esi + 0x10]
push 0
push eax
push dword [ebp - 0x2148]
call fcn.004e95db
add esp, 0x28
mov esi, str.222PAULAARCHIVE222JesusIAdoreYou
nop
push dword [ebp - 0x2148]
call fcn.004e8d30
mov ecx, eax
add esp, 4
movsx eax, byte [esi]
cmp ecx, eax
jne 0x403cd1
inc esi
cmp byte [esi], 0
jne 0x402d00
mov eax, dword [ebp - 0x21a4]
cmp ebx, eax
je 0x402d7c
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x402d45
push str._nERROR:_CheckSum_failed._The_given_archive_is_corrupt_
call fcn.00413650
mov eax, dword [ebp - 0x21a4]
add esp, 4
push ebx
push eax
push esi
push dword [ebp + 0x18]
lea eax, [ebp - 0x103c]
push eax
push dword [ebp - 0x214c]
push str.:4:A_corrupt_archive_file_was_passed_into_ExpandArchive___s_____s____d___d_:_The_CheckSum_should_be__ld_but_was_calculated_to_be__ld.
call fcn.00424fd0
push dword [ebp - 0x2148]
call fcn.0042bfc0
mov dword [0x583260], 1
jmp 0x403d24
mov dword [ebp - 0x2174], edi
cmp dword [0x55fd7c], edi
je 0x403a47
mov ebx, dword [ebp - 0x2148]
push ebx
push 1
lea eax, [ebp - 0x2154]
mov dword [ebp - 0x2154], 0
push 4
push eax
call fcn.004e91b7
add esp, 0x10
cmp eax, 1
jae 0x402e01
push ebx
call fcn.004e8873
add esp, 4
test eax, eax
jne 0x403a47
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x402de1
push 0x1ad
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
push str._GetLastError_
push dword [ebp - 0x2154]
push dword [ebp - 0x214c]
push str.:9:ExpandArchive___s___FAILED:_fread___FAILED_to_read_the_size_of_the_next_entry:_read__ld:__s
call fcn.00424a90
add esp, 0x10
jmp 0x402e04
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x2154]
test eax, eax
js 0x403c9a
push 0x800
lea eax, [ebp - 0x83c]
push 0
push eax
call fcn.004e69c0
add esp, 0xc
xor esi, esi
nop word [eax + eax]
push ebx
call fcn.004e8d30
add esp, 4
mov byte [ebp + esi - 0x83c], al
test eax, eax
je 0x402e8d
inc esi
cmp esi, 0x800
jb 0x402e30
cmp dword [ebp + 0x1c], 0
mov byte [ebp - 0x7be], 0
je 0x402e6c
push 0x1ca
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
lea eax, [ebp - 0x83c]
push eax
push dword [ebp - 0x214c]
push str.:9:ExpandArchive___s___FAILED:_The_following_string_was_read_as_a_file_name_for_one_of_the_entries:___s_
call fcn.00424a90
add esp, 0xc
xor esi, esi
jmp 0x403a65
push ebx
push 1
lea eax, [ebp - 0x21b0]
xorps xmm0, xmm0
push 8
push eax
movlpd qword [ebp - 0x21b0], xmm0
call fcn.004e91b7
add esp, 0x10
cmp eax, 1
jb 0x403c61
cmp dword [ebp - 0x2154], 0
jne 0x402edc
lea eax, [ebp - 0x83c]
push eax
call fcn.004a73a0
add esp, 4
test eax, eax
je 0x402edc
inc dword [ebp - 0x2198]
jmp 0x403a3a
mov esi, dword [ebp - 0x21b8]
push esi
call fcn.004a73a0
add esp, 4
test eax, eax
jne 0x402f0b
lea eax, [ebp - 0x83c]
push eax
call fcn.004a8490
lea eax, [ebp - 0x83c]
push esi
push eax
call fcn.004a3cc0
add esp, 0xc
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x402fcb
cmp esi, 0xde
jne 0x402fb7
push 0x37
lea eax, [ebp - 0x3c]
push 0
push eax
call fcn.004e69c0
push 0x800
lea eax, [ebp - 0x2140]
push 0
push eax
call fcn.004e69c0
push 0x800
lea eax, [ebp - 0x83c]
push eax
lea eax, [ebp - 0x2140]
push eax
call fcn.004a9a20
lea eax, [ebp - 0x2140]
push eax
call fcn.004a85d0
lea eax, [ebp - 0x2140]
push eax
call fcn.004a8370
push 0
push 0x50aa54
push str..wav
lea eax, [ebp - 0x2140]
push 0x800
push eax
call fcn.004a89e0
add esp, 0x40
lea eax, [ebp - 0x2140]
push 0x37
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.004a9a20
lea eax, [ebp - 0x3c]
push eax
push str._nExpanding:___s_
call fcn.00413650
add esp, 0x14
jmp 0x402fcb
lea eax, [ebp - 0x83c]
push eax
push str._nExpanding:___s_
call fcn.00413650
add esp, 8
lea eax, [ebp - 0x103c]
push eax
lea eax, [ebp - 0x83c]
push eax
call fcn.004a7ad0
add esp, 8
xor ecx, ecx
mov al, byte [ebp + ecx - 0x83c]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x1941], al
test al, al
jne 0x402fe3
lea eax, [ebp - 0x1940]
push eax
call fcn.004a8490
lea eax, [ebp - 0x1940]
push eax
call fcn.004289d0
add esp, 8
test eax, eax
jne 0x403046
push eax
lea eax, [ebp - 0x1940]
push eax
call fcn.00427800
add esp, 8
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x1940]
push eax
call fcn.004289d0
add esp, 4
test eax, eax
je 0x403ae5
cmp dword [ebp + 0x18], 0
jne 0x40312f
lea eax, [ebp - 0x83c]
push eax
call fcn.004289f0
add esp, 4
test eax, eax
je 0x40312f
push 0
push 0
lea eax, [ebp - 0x21c8]
push eax
push 0
lea eax, [ebp - 0x83c]
push 0
push eax
call fcn.00429e70
mov ebx, dword [ebp - 0x2150]
add esp, 0x18
test eax, eax
jne 0x4030b3
mov eax, ebx
inc ebx
mov dword [ebp - 0x2150], ebx
cmp eax, 0xde
jge 0x4030b3
lea eax, [ebp - 0x83c]
push eax
push str.:4:ExpandArchive___EAP:_GetFileTimeTimeOut___s___FAILED_
call fcn.00424a90
add esp, 8
push 0
push 0xea60
lea eax, [ebp - 0x21c8]
push eax
lea eax, [ebp - 0x21b0]
push eax
call fcn.00426510
add esp, 0x10
test eax, eax
jns 0x40312f
push 1
push dword [ebp - 0x2154]
push dword [ebp - 0x2148]
call fcn.004e95db
add esp, 0xc
test eax, eax
je 0x403a34
test esi, esi
je 0x403108
push 0x21a
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
cmp ebx, 0xde
jge 0x403128
push str._GetLastError_
push dword [ebp - 0x2154]
push str.:9:ExpandArchive___encountered_a_problem:_fseek__ld__SEEK_CUR___FAILED:_entry_could_not_be_skipped:__s
call fcn.00424a90
add esp, 0xc
xor esi, esi
jmp 0x403a5f
call fcn.004d9850
mov ebx, eax
xor esi, esi
nop dword [eax + eax]
push 0x22a
push str.C:UsersOfficeDocumentsVisual_StudioPAULAArchive.c
lea eax, [ebp - 0x83c]
push 0x50ab90
push eax
call fcn.0042c170
add esp, 0x10
mov dword [ebp - 0x2164], eax
test eax, eax
jne 0x4032b2
call fcn.004d9850
sub eax, ebx
cmp eax, 0x1194
ja 0x4031c8
cmp dword [0x58225c], 0
jne 0x4031c8
lea eax, [ebp - 0x83c]
push eax
call fcn.004a86c0
lea ecx, [ebp - 0x83c]
add esp, 4
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4031a0
sub ecx, edx
cmp byte [ebp + ecx - 0x83d], 0x5c
je 0x4031c8
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0xf
jl 0x403140
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x40321a
lea ecx, [ebp - 0x83c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4031d8
sub ecx, edx
cmp byte [ebp + ecx - 0x83d], 0x5c
je 0x40321a
push dword [ebp - 0x2148]
call fcn.004e9c3a
push eax
push 0x23e
push str._n________ERROR__d__d________
call fcn.00413650
lea eax, [ebp - 0x83c]
push eax
push str._n___Could_not_open_destination___s__for_writing_
call fcn.00413650
add esp, 0x18
cmp dword [0x58225c], 0
jne 0x40325b
mov ecx, dword [ebp - 0x2150]
mov eax, ecx
inc ecx
mov dword [ebp - 0x2150], ecx
cmp eax, 0xde
jge 0x40325b
call fcn.004d9850
sub eax, ebx
push eax
push dword [ebp - 0x2154]
lea eax, [ebp - 0x83c]
push eax
push str.:9:ExpandArchive___encountered_a_problem:_fopen___s____wb____ld_bytes_FAILED_:_Could_not_open_the_destination_file_after__ldms___This_file_is_being_skipped...
call fcn.00424a90
add esp, 0x10
mov eax, dword [ebp - 0x2154]
test eax, eax
jle 0x403a34
mov ebx, dword [ebp - 0x2148]
push 1
push eax
push ebx
call fcn.004e95db
add esp, 0xc
test eax, eax
je 0x403a3a
test esi, esi
je 0x403299
push 0x248
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
push str._GetLastError_
push str.:9:ExpandArchive___has_a_serious_problem:_fseek_failed_too__Entry_could_not_opened_cannot_be_skipped:__s
call fcn.00424a90
add esp, 8
xor esi, esi
jmp 0x403a65
inc dword [ebp - 0x2174]
test edi, edi
jne 0x4032db
push 1
push 0xc366
call fcn.004eea94
mov edi, eax
add esp, 8
mov dword [ebp - 0x216c], edi
test edi, edi
je 0x403b24
cmp dword [ebp - 0x2154], 0
mov dword [ebp - 0x21bc], 0
jle 0x40390c
mov ebx, dword [ebp - 0x2148]
lea eax, [ebp - 0x2160]
push ebx
push 1
push 2
push eax
call fcn.004e91b7
add esp, 0x10
cmp eax, 1
jb 0x403c23
mov eax, dword [ebp - 0x2160]
test ax, ax
je 0x403be7
movzx ecx, ax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x50c0bc]
ja 0x403be7
push ebx
push ecx
push 1
push edi
call fcn.004e91b7
mov edx, dword [ebp - 0x2160]
add esp, 0x10
movzx ecx, dx
cmp eax, ecx
jb 0x403ba1
mov eax, dword [ebp - 0x2194]
xor ebx, ebx
add ecx, edi
movzx edx, dx
mov dword [ebp - 0x2178], eax
mov esi, 1
mov dword [ebp - 0x218c], ecx
mov dword [ebp - 0x215c], edx
mov dword [ebp - 0x2170], 0
mov dword [ebp - 0x217c], esi
mov dword [ebp - 0x2168], ebx
mov byte [ebp - 0x2141], bl
test edi, edi
je 0x403b55
test ecx, ecx
je 0x403b55
test dx, dx
je 0x403b55
mov al, byte [edi]
test al, 0x20
je 0x4035e8
push dword [ebp - 0x2194]
call fcn.004a75a0
add esp, 4
test eax, eax
je 0x4033e6
test byte [edi], 0x10
mov eax, str.gzGZ
mov ecx, str.qaEFE_HHNzn_
cmove eax, ecx
mov dword [ebp - 0x2178], eax
jmp 0x4033ec
mov eax, dword [ebp - 0x2178]
push eax
call fcn.004a73a0
add esp, 4
test eax, eax
jne 0x403b55
mov edx, dword [ebp - 0x2178]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x403406
push dword [ebp - 0x2178]
sub edx, ecx
mov dword [ebp - 0x21a0], edx
call fcn.004a7040
add eax, dword [ebp - 0x21a0]
mov ecx, 0x7e
cdq
add esp, 4
idiv ecx
mov eax, esi
mov dword [ebp - 0x21a8], edx
mov edx, dword [ebp - 0x215c]
movzx ecx, dx
mov dword [ebp - 0x2190], eax
mov dword [ebp - 0x2180], ecx
cmp ecx, 1
jbe 0x4035dd
mov esi, dword [ebp - 0x21a8]
mov ebx, ecx
nop
mov ecx, dword [ebp - 0x216c]
mov edx, eax
mov dword [ebp - 0x2188], eax
mov edi, eax
mov dword [ebp - 0x219c], edx
cmp eax, ebx
jge 0x40349b
nop word [eax + eax]
movzx eax, byte [edi + ecx]
sub eax, esi
sub eax, 0x20
cmp eax, 0x5e
ja 0x403493
inc edi
cmp edi, ebx
jl 0x403480
cmp edi, dword [ebp - 0x2190]
jne 0x4034b5
cmp edi, ebx
jge 0x4034b5
nop
movzx eax, byte [edi + ecx]
sub eax, esi
cmp eax, 0x20
jl 0x4034b0
cmp eax, 0x7f
jl 0x4034b5
inc edi
cmp edi, ebx
jl 0x4034a0
mov eax, edi
sub edi, edx
mov dword [ebp - 0x2190], eax
cmp edx, eax
jge 0x4035bd
mov eax, 0xc
lea ebx, [edx + ecx]
sub eax, dword [ebp - 0x2188]
mov dword [ebp - 0x2184], eax
mov eax, dword [ebp - 0x21a0]
sub eax, ecx
mov dword [ebp - 0x21c0], eax
nop dword [eax]
mov al, byte [ebx]
sub al, byte [ebp - 0x21a8]
movzx ecx, al
sub al, 0x20
mov dword [ebp - 0x2188], ecx
cmp al, 0x5e
ja 0x403589
mov eax, 0x939a85c5
mov ecx, edi
imul edi
add edx, edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xde
sub ecx, eax
mov eax, dword [ebp - 0x21c0]
add eax, ebx
imul esi, ecx, 0xde
cdq
idiv dword [ebp - 0x21a0]
mov eax, dword [ebp - 0x2178]
mov ecx, dword [ebp - 0x2184]
add ecx, dword [ebp - 0x219c]
movsx eax, byte [edx + eax]
add eax, esi
cdq
idiv ecx
mov eax, 0xac769185
lea ecx, [edx + 0x8ae]
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x5f
sub ecx, eax
sub ecx, dword [ebp - 0x2188]
lea eax, [ecx + 0x40]
cmp eax, 0x20
jge 0x40358f
add eax, 0x5f
jmp 0x40358f
mov eax, dword [ebp - 0x2188]
mov byte [ebx], al
inc ebx
mov eax, dword [ebp - 0x219c]
inc eax
mov dword [ebp - 0x219c], eax
cmp eax, dword [ebp - 0x2190]
jl 0x4034f0
mov eax, dword [ebp - 0x2190]
mov ebx, dword [ebp - 0x2180]
mov esi, dword [ebp - 0x21a8]
cmp eax, ebx
jl 0x403460
mov ebx, dword [ebp - 0x2168]
mov esi, dword [ebp - 0x217c]
mov edi, dword [ebp - 0x216c]
mov edx, dword [ebp - 0x215c]
xor byte [edi], 0x20
mov al, byte [edi]
mov ecx, dword [ebp - 0x218c]
test al, al
jns 0x40360d
movzx eax, dx
dec eax
push eax
lea eax, [edi + 1]
push eax
push ecx
call fcn.004e6440
mov eax, dword [ebp - 0x215c]
add esp, 0xc
dec eax
movzx ebx, ax
jmp 0x403850
test al, 0x10
je 0x403647
movzx eax, dx
push eax
lea eax, [edi + 1]
mov dword [ebp - 0x2180], 0x56d8
push eax
lea eax, [ebp - 0x2180]
push eax
push ecx
call fcn.004e4cb0
add esp, 0x10
test eax, eax
jne 0x403b55
movzx ebx, word [ebp - 0x2180]
jmp 0x403850
mov eax, 1
cmp ax, dx
jae 0x403850
mov al, byte [ebp - 0x2141]
nop dword [eax + eax]
test al, al
jne 0x403694
movzx eax, si
inc esi
movzx eax, byte [eax + edi]
shl ax, 8
movzx eax, ax
mov dword [ebp - 0x2170], eax
cmp si, dx
jae 0x40368d
movzx eax, si
movzx eax, byte [eax + edi]
add word [ebp - 0x2170], ax
inc esi
mov byte [ebp - 0x2141], 0x10
cmp word [ebp - 0x2170], 0
movzx edx, si
jge 0x403813
mov eax, dword [ebp - 0x215c]
movzx eax, ax
dec eax
cmp edx, eax
jge 0x403813
movzx ecx, byte [edx + edi]
inc esi
movzx eax, si
mov dword [ebp - 0x2184], eax
shl cx, 4
mov dword [ebp - 0x217c], esi
mov al, byte [eax + edi]
mov byte [ebp - 0x2155], al
mov dl, al
shr al, 4
movzx eax, al
add cx, ax
movzx eax, cx
mov dword [ebp - 0x2168], eax
test ax, ax
je 0x403775
and dl, 0xf
movzx eax, dl
add ax, 3
movzx ecx, ax
mov eax, ebx
sub eax, dword [ebp - 0x2168]
movzx edx, ax
mov dword [ebp - 0x2184], ecx
movzx ecx, cx
movzx eax, bx
add eax, ecx
mov dword [ebp - 0x2168], ecx
cmp eax, 0x56d8
ja 0x403b55
lea eax, [ecx + edx]
cmp eax, 0x56d8
ja 0x403b55
xor eax, eax
cmp ax, word [ebp - 0x2184]
jae 0x40382c
mov esi, dword [ebp - 0x218c]
mov edi, ecx
movzx eax, dx
inc edx
movzx ecx, bx
inc ebx
mov al, byte [eax + esi]
mov byte [ecx + esi], al
sub edi, 1
jne 0x403751
mov edi, dword [ebp - 0x216c]
mov esi, dword [ebp - 0x217c]
jmp 0x40382c
mov ecx, dword [ebp - 0x215c]
movzx eax, cx
add eax, 0xfffffffe
cmp dword [ebp - 0x2184], eax
jge 0x403b55
movzx ecx, byte [ebp - 0x2155]
inc esi
movzx eax, si
inc esi
mov dword [ebp - 0x217c], esi
movzx edx, byte [eax + edi]
mov eax, 0x100
imul ecx, eax
movzx eax, bx
add cx, 0x10
add dx, cx
movzx ecx, dx
mov edx, ecx
add eax, edx
cmp eax, 0x56d8
ja 0x403b55
cmp si, word [ebp - 0x215c]
jae 0x403b55
xor eax, eax
cmp ax, cx
jae 0x40382c
movzx eax, si
mov dword [ebp - 0x2168], eax
mov esi, eax
nop word [eax + eax]
mov al, byte [esi + edi]
mov edi, dword [ebp - 0x218c]
movzx ecx, bx
inc ebx
mov byte [ecx + edi], al
mov edi, dword [ebp - 0x216c]
sub edx, 1
jne 0x4037f0
mov esi, dword [ebp - 0x217c]
jmp 0x40382c
cmp si, word [ebp - 0x215c]
jae 0x40382d
mov al, byte [edx + edi]
mov edx, dword [ebp - 0x218c]
movzx ecx, bx
inc ebx
mov byte [ecx + edx], al
inc esi
mov al, byte [ebp - 0x2141]
shl dword [ebp - 0x2170], 1
dec al
mov edx, dword [ebp - 0x215c]
mov byte [ebp - 0x2141], al
cmp si, dx
jb 0x403660
movzx eax, bx
test ax, ax
je 0x403b55
push dword [ebp - 0x2164]
mov esi, eax
movzx eax, word [ebp - 0x2160]
push esi
add eax, edi
push 1
push eax
call fcn.004e9f2f
add esp, 0x10
cmp eax, esi
jae 0x4038cd
cmp dword [ebp + 0x1c], 0
je 0x403895
push 0x29d
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
mov ebx, dword [ebp - 0x2150]
mov eax, ebx
inc ebx
mov dword [ebp - 0x2150], ebx
cmp eax, 0xde
jge 0x4038d3
push str._GetLastError_
lea eax, [ebp - 0x83c]
push eax
push esi
push dword [ebp - 0x214c]
push str.:8:ExpandArchive___s___FAILED:_failed_to_write_a_block_of_size__ld_to_destination_file___s_:_fwrite___FAILED:__s
call fcn.00424a90
add esp, 0x14
jmp 0x4038d3
mov ebx, dword [ebp - 0x2150]
cmp dword [ebp + 0x1c], 0
je 0x4038e6
push 0x50b02c
call fcn.00413650
add esp, 4
mov esi, dword [ebp - 0x21bc]
movzx eax, word [ebp - 0x2160]
add esi, 2
add esi, eax
mov dword [ebp - 0x21bc], esi
cmp esi, dword [ebp - 0x2154]
jl 0x4032f2
jmp 0x403912
mov ebx, dword [ebp - 0x2150]
push dword [ebp - 0x2164]
mov esi, ebx
call fcn.0042bfc0
add esp, 4
mov dword [ebp - 0x2164], 0
lea eax, [ebp - 0x83c]
push 0
push connect
push 3
push 0
push 7
push 0x100
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4039b2
cmp dword [ebp + 0x1c], 0
je 0x40396a
push 0x2c2
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
lea eax, [esi + 1]
mov dword [ebp - 0x2150], eax
cmp esi, 0xde
jge 0x403a34
push 0x2c4
push str.:7:________ERROR__d________
call fcn.00424fd0
push str._GetLastError_
lea eax, [ebp - 0x83c]
push eax
push dword [ebp - 0x214c]
push str.:7:ExpandArchive___s___encountered_a_problem:_failed_to_set_the_files_time_stamp___s_:_CreateFile___FAILED:__s
call fcn.00424a90
add esp, 0x18
jmp 0x403a34
lea eax, [ebp - 0x21b0]
mov dword [ebp - 0x2150], esi
push eax
push eax
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x403a13
cmp dword [ebp + 0x1c], eax
je 0x4039e3
push 0x2c9
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
lea eax, [esi + 1]
mov dword [ebp - 0x2150], eax
cmp esi, 0xde
jge 0x403a13
push str._GetLastError_
lea eax, [ebp - 0x83c]
push eax
push dword [ebp - 0x214c]
push str.:7:ExpandArchive___s___encountered_a_problem:_failed_to_set_the_files_time_stamp___s_:_SetFileTime___FAILED:__s
call fcn.00424a90
add esp, 0x10
push 0x2cc
push str.C:UsersOfficeDocumentsVisual_StudioPAULAArchive.c
push str.ExpandArchive_SUB
push ebx
call fcn.00426230
mov eax, dword [ebp - 0x2164]
mov dword [ebp - 0x2164], eax
mov ebx, dword [ebp - 0x2148]
cmp dword [0x55fd7c], 0
jne 0x402d94
cmp dword [ebp + 0x1c], 0
mov esi, 1
je 0x403a5f
push str._nDone_
call fcn.00413650
add esp, 4
mov ebx, dword [ebp - 0x2148]
push ebx
call fcn.0042bfc0
mov eax, dword [ebp - 0x2164]
add esp, 4
test eax, eax
je 0x403a81
push eax
call fcn.0042bfc0
add esp, 4
test edi, edi
je 0x403a8e
push edi
call fcn.004eea9f
add esp, 4
mov eax, dword [ebp - 0x2198]
mov dword [0x58225c], 0
test eax, eax
jle 0x403ac9
push eax
push dword [ebp - 0x214c]
push str.:9:ExpandArchive___s___encountered__d_zero_sized_INVALID_files_in_the_archive_
call fcn.00424a90
mov eax, dword [ebp - 0x2174]
xor ecx, ecx
add esp, 0xc
test eax, eax
cmovg eax, ecx
mov dword [ebp - 0x2174], eax
xor eax, eax
test esi, esi
pop edi
cmovne eax, dword [ebp - 0x2174]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e50dc
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x403afd
lea eax, [ebp - 0x1940]
push eax
push str._nERROR:_Could_not_create_directory___s_
call fcn.00413650
add esp, 8
cmp dword [ebp - 0x2150], 0xde
jge 0x403b1d
lea eax, [ebp - 0x1940]
push eax
push str.:3:ExpandArchive___FAILED:_Could_not_create_the_destination_directory:___s_
call fcn.00424fd0
add esp, 8
xor esi, esi
jmp 0x403a65
cmp dword [ebp + 0x1c], 0
je 0x403b3c
push 0x25f
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
push 0x56ce
push str.:8:ExpandArchive___FAILED:_calloc___failed_to_allocate____ld__2.25f___10__bytes_of_date:_OUT_OF_MEMORY_
call fcn.00424a90
add esp, 8
xor esi, esi
jmp 0x403a5f
mov eax, dword [ebp - 0x2194]
test eax, eax
jne 0x403b79
push dword [ebp - 0x214c]
push str.:8:ExpandArchive___s___FAILED:_ExpandBlock___FAILED_with_no_key.
call fcn.00424fd0
add esp, 8
xor esi, esi
jmp 0x403a5f
push eax
push dword [ebp - 0x214c]
push str.:8:ExpandArchive___s___FAILED:_ExpandBlock___FAILED_with_the_following_key:___s_.
call fcn.00424fd0
add esp, 0xc
mov dword [ebp - 0x2174], 0xffffffff
mov esi, 1
jmp 0x403a5f
cmp dword [ebp + 0x1c], 0
je 0x403bb9
push 0x27d
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
push str._GetLastError_
lea eax, [ebp - 0x83c]
push eax
movzx eax, word [ebp - 0x2160]
push eax
push dword [ebp - 0x214c]
push str.:8:ExpandArchive___s___FAILED:_Unrecoverable_error:_the_next_block_to_read_should_be__ld__but_fread___failed_to_read_this_amount_of_data_from_the_file___s_:_fread___FAILED:__s
call fcn.00424a90
add esp, 0x14
xor esi, esi
jmp 0x403a65
cmp dword [ebp + 0x1c], 0
je 0x403c05
push 0x274
push str._n________ERROR__d________
call fcn.00413650
mov eax, dword [ebp - 0x2160]
add esp, 8
movzx eax, ax
push eax
push dword [ebp - 0x214c]
push str.:9:ExpandArchive___s___FAILED:_Unrecoverable_error:_the_size_of_the_next_block_of_compressed_data_was_read_to_be__ld_which_is_invalid.
call fcn.00424a90
add esp, 0xc
xor esi, esi
jmp 0x403a65
cmp dword [ebp + 0x1c], 0
je 0x403c3b
push 0x26b
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
push str._GetLastError_
lea eax, [ebp - 0x83c]
push eax
push dword [ebp - 0x214c]
push str.:9:ExpandArchive___s___FAILED:_Unrecoverable_error:_the_next_block_size_for___s__could_not_be_read:_fread___FAILED:__s
call fcn.00424a90
add esp, 0x10
xor esi, esi
jmp 0x403a65
cmp dword [ebp + 0x1c], 0
je 0x403c79
push 0x1d3
push str._n________ERROR__d________
call fcn.00413650
add esp, 8
lea eax, [ebp - 0x83c]
push eax
push dword [ebp - 0x214c]
push str.:9:ExpandArchive___s___FAILED:_fread___FAILED_to_read_the_file_time_stamp_for___s_
call fcn.00424a90
add esp, 0xc
xor esi, esi
jmp 0x403a65
test esi, esi
je 0x403cb6
push 0x1b4
push str._n________ERROR__d________
call fcn.00413650
mov eax, dword [ebp - 0x2154]
add esp, 8
push eax
push dword [ebp - 0x214c]
push str.:9:ExpandArchive___s___FAILED:_an_entry_size_was_read_to_be__ld_wich_is_invalid_
call fcn.00424a90
add esp, 0xc
xor esi, esi
jmp 0x403a65
push dword [ebp - 0x2148]
call fcn.0042bfc0
mov ebx, dword [ebp + 0x1c]
add esp, 4
test ebx, ebx
je 0x403cf3
push str._nERROR:_The_given_archive_is_invalid_or_corrupt_
call fcn.00413650
add esp, 4
mov esi, dword [ebp - 0x214c]
push 0
push 0
push esi
call fcn.00429b90
push ebx
push dword [ebp + 0x18]
lea ecx, [ebp - 0x103c]
test eax, eax
push ecx
mov edx, str.:4:An_invalid_archive_file_was_passed_into_ExpandArchive___s_____s____d___d_:_The_file_size_is_zero.
mov ecx, str.:4:An_invalid_archive_file_was_passed_into_ExpandArchive___s_____s____d___d_:_The_archive_validation_string_could_not_be_found.
cmove ecx, edx
push esi
push ecx
call fcn.00424a90
add esp, 0x20
mov ecx, dword [ebp - 4]
xor eax, eax
mov dword [0x58225c], edi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004e50dc
mov esp, ebp
pop ebp
ret