Function at 0x401fd2
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1454
call fcn.004c8990
mov eax, dword [0x5385d0]
xor eax, esp
mov dword [esp + 0x1450], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov esi, 0x7ff
push esi
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x5d]
push ebx
push eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x64], bl
call fcn.004b7880
add esp, 0xc
push esi
lea eax, [esp + 0x85d]
push ebx
push eax
mov byte [esp + 0x864], bl
call fcn.004b7880
mov edx, dword [esp + 0x1c]
xor eax, eax
lea edi, [esp + 0x5c]
add esp, 0xc
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x20], ebx
stosd dword es:[edi], eax
mov dword [esp + 0x44], ebx
call fcn.0047ebaf
test eax, eax
je 0x402073
xor eax, eax
jmp 0x402a2c
push dword [esp + 0x10]
mov edi, 0x800
mov ecx, edi
lea eax, [esp + 0x85c]
call fcn.0047ebe1
pop ecx
call fcn.004a6bcb
mov esi, eax
call fcn.004b7d0d
add eax, esi
xor edx, edx
mov ecx, 0x1869f
div ecx
mov eax, edi
lea edi, [esp + 0x858]
push edx
push str.__d.tmp
call fcn.004801e3
mov ecx, dword [esp + 0x18]
push 0x31e
mov edi, str..Archive.c
push edi
mov edx, 0x4d520c
call fcn.0041e477
add esp, 0x10
cmp eax, ebx
mov dword [esp + 0x18], eax
jne 0x4020f9
mov edi, dword [esp + 0x10]
call fcn.0041c5ff
test eax, eax
je 0x40206c
push edi
push str.:5:UltraCompressArchive___FAILED:_fopen___s____rb___FAILED:_The_given_source_archive_exists_but_cannot_be_opened_for_reading_
call fcn.00418e96
pop ecx
pop ecx
jmp 0x40206c
push 0x325
push edi
mov edx, 0x4d5e50
lea ecx, [esp + 0x860]
call fcn.0041e477
cmp eax, ebx
pop ecx
pop ecx
mov dword [esp + 0xc], eax
jne 0x402132
mov ecx, dword [esp + 0x18]
call fcn.0041e8bf
lea eax, [esp + 0x858]
push eax
push str.:8:UltraCompressArchive___FAILED:_fopen___s____wb___FAILED:_The_temp_file_could_not_be_created_
jmp 0x4020ed
mov esi, dword [esp + 0x10]
push str..exe
call fcn.0047f443
push eax
call fcn.004b763f
xor edi, edi
pop ecx
inc edi
test eax, eax
pop ecx
jne 0x402236
push str._nLooking_for_self_extraction...
call fcn.00410186
pop ecx
mov ecx, esi
call fcn.004033a2
cmp eax, ebx
mov dword [esp + 0x30], eax
jle 0x40223a
push 0x3ff
lea eax, [esp + 0x105d]
push ebx
push eax
mov byte [esp + 0x1064], bl
call fcn.004b7880
add esp, 0xc
cmp dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebx
jle 0x40223a
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x14]
mov ecx, 0x400
cmp eax, ecx
jbe 0x4021b3
mov eax, ecx
push esi
push eax
lea eax, [esp + 0x1060]
push edi
push eax
call fcn.004b7b96
add esp, 0x10
cmp eax, ebx
mov dword [esp + 0x24], eax
jle 0x4021fa
push dword [esp + 0xc]
push eax
lea eax, [esp + 0x1060]
push edi
push eax
call fcn.004b6868
add esp, 0x10
cmp eax, dword [esp + 0x24]
jb 0x40221f
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x30]
jl 0x4021a0
jmp 0x40223e
push dword [esp + 0x14]
push str.:7:UltraCompressArchive___FAILED:_fread___FAILED_to_read_self_extraction_code:__d
call fcn.00418e96
pop ecx
pop ecx
mov ecx, esi
call fcn.0041e8bf
mov ecx, dword [esp + 0xc]
call fcn.0041e8bf
jmp 0x40206c
push dword [esp + 0x24]
push dword [esp + 0x18]
push str.:7:UltraCompressArchive___FAILED:_fwrite___FAILED_to_write_self_extraction_code:__d___d
call fcn.00418e96
add esp, 0xc
jmp 0x40220a
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0x18]
push esi
push edi
lea eax, [esp + 0x28]
push 4
push eax
call fcn.004b7b96
push dword [esp + 0x1c]
lea eax, [esp + 0x34]
push edi
push 4
push eax
call fcn.004b6868
push str._nValidating_CheckSum...
call fcn.00410186
add esp, 0x24
push esi
push edi
lea eax, [esp + 0x44]
push 4
push eax
call fcn.004b7b96
push dword [esp + 0x1c]
lea eax, [esp + 0x50]
push edi
push 4
push eax
call fcn.004b6868
mov ecx, dword [esp + 0x40]
push esi
call fcn.00404614
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
add esp, 0x24
add eax, 8
push ebx
push eax
push esi
call fcn.004b6d9f
add esp, 0xc
push esi
push edi
lea eax, [esp + 0x54]
push 8
push eax
call fcn.004b7b96
push dword [esp + 0x1c]
lea eax, [esp + 0x60]
push edi
push 8
push eax
call fcn.004b6868
add esp, 0x20
mov dword [esp + 0x14], str.222PAULAARCHIVE222JesusIAdoreYou
push esi
call fcn.004b7009
pop ecx
push dword [esp + 0xc]
mov dword [esp + 0x38], eax
push eax
call fcn.004b768f
mov eax, dword [esp + 0x1c]
movsx eax, byte [eax]
cmp dword [esp + 0x3c], eax
pop ecx
pop ecx
jne 0x402339
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp byte [eax], bl
jne 0x4022d6
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x3c]
je 0x40237d
push str._nERROR:_CheckSum_failed._The_given_archive_is_corrupt_
call fcn.00410186
pop ecx
push dword [esp + 0x38]
push dword [esp + 0x40]
push dword [esp + 0x18]
push str.:4:A_corrupt_archive_file_was_passed_into_UltraCompressArchive___s__:_The_CheckSum_should_be__ld_but_was_calculated_to_be__ld.
call fcn.0041936e
add esp, 0x10
jmp 0x40220a
mov ecx, esi
call fcn.0041e8bf
mov ecx, dword [esp + 0xc]
call fcn.0041e8bf
push str._nERROR:_The_given_archive_is_invalid_or_corrupt_
call fcn.00410186
pop ecx
mov ecx, dword [esp + 0x10]
push ebx
xor edx, edx
call fcn.0041cc74
test eax, eax
pop ecx
push dword [esp + 0x10]
jne 0x402373
push str.:4:An_invalid_archive_file_was_passed_into_UltraCompressArchive___s__:_The_file_size_is_zero.
jmp 0x4020ed
push str.:4:An_invalid_archive_file_was_passed_into_UltraCompressArchive___s__:_The_archive_validation_string_could_not_be_found.
jmp 0x4020ed
mov dword [esp + 0x24], ebx
mov esi, str._n________ERROR__d________
push dword [esp + 0x18]
lea eax, [esp + 0x2c]
push edi
push 4
push eax
mov dword [esp + 0x38], ebx
call fcn.004b7b96
add esp, 0x10
cmp eax, edi
jae 0x4023d9
push dword [esp + 0x18]
call fcn.004b7849
test eax, eax
pop ecx
jne 0x40268b
push 0x38c
push esi
call fcn.00410186
push str._GetLastError_
push dword [esp + 0x34]
push dword [esp + 0x20]
push str.:9:UltraCompressArchive___s___FAILED:_fread___FAILED_to_read_the_size_of_the_next_entry:_read__ld:__s
call fcn.00418e96
add esp, 0x18
push dword [esp + 0xc]
lea eax, [esp + 0x2c]
push edi
push 4
push eax
call fcn.004b6868
add esp, 0x10
cmp eax, edi
jb 0x4027c4
push dword [esp + 0xc]
call fcn.004b6b13
cmp eax, 0xffffffff
pop ecx
je 0x4027dd
sub eax, 4
cmp dword [esp + 0x28], ebx
mov dword [esp + 0x54], eax
jl 0x4027f6
push 0x800
lea eax, [esp + 0x5c]
push ebx
push eax
call fcn.004b7880
add esp, 0xc
mov dword [esp + 0x14], ebx
push dword [esp + 0x18]
call fcn.004b7009
pop ecx
push dword [esp + 0xc]
mov dword [esp + 0x38], eax
push eax
call fcn.004b768f
mov eax, dword [esp + 0x3c]
cmp eax, ebx
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x58], al
je 0x402468
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x800
jb 0x402430
cmp dword [esp + 0x14], 0x800
jae 0x402813
push 8
lea eax, [esp + 0x50]
push ebx
push eax
call fcn.004b7880
add esp, 0xc
push dword [esp + 0x18]
lea eax, [esp + 0x50]
push edi
push 8
push eax
call fcn.004b7b96
add esp, 0x10
cmp eax, edi
jb 0x402838
push dword [esp + 0xc]
lea eax, [esp + 0x50]
push edi
push 8
push eax
call fcn.004b6868
add esp, 0x10
cmp eax, edi
jb 0x402856
lea eax, [esp + 0x58]
push eax
push str._nRecompress:___s_
call fcn.00410186
inc dword [esp + 0x2c]
cmp dword [esp + 0x34], ebx
pop ecx
pop ecx
jne 0x4024f2
push edi
push 0xc366
call fcn.004b66ca
cmp eax, ebx
pop ecx
pop ecx
mov dword [esp + 0x2c], eax
je 0x40286f
cmp dword [esp + 0x28], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x34], ebx
jle 0x402630
push dword [esp + 0x18]
lea eax, [esp + 0x20]
push edi
push 2
push eax
call fcn.004b7b96
add esp, 0x10
cmp eax, edi
jb 0x402889
cmp word [esp + 0x1c], bx
je 0x40299f
movzx ecx, word [esp + 0x1c]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fcomp qword [0x534178]
fnstsw ax
test ah, 0x41
je 0x40299f
push dword [esp + 0x18]
push ecx
push edi
push dword [esp + 0x38]
call fcn.004b7b96
movzx ecx, word [esp + 0x2c]
add esp, 0x10
cmp eax, ecx
jb 0x4028b4
mov eax, dword [esp + 0x2c]
push dword [esp + 0x48]
lea ecx, [eax + 0x56d8]
push ecx
push dword [esp + 0x24]
call fcn.0040303d
movzx eax, ax
add esp, 0xc
cmp ax, bx
mov dword [esp + 0x14], eax
je 0x4028e5
mov ebx, dword [esp + 0x2c]
push edi
push dword [esp + 0x4c]
push eax
lea eax, [ebx + 0x56d8]
push eax
call fcn.00402ca0
movzx eax, ax
add esp, 0x10
test ax, ax
mov dword [esp + 0x40], eax
je 0x402921
mov ecx, dword [esp + 0x44]
push dword [esp + 0xc]
movzx eax, ax
lea eax, [ecx + eax + 2]
push edi
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x48]
push 2
push eax
call fcn.004b6868
add esp, 0x10
cmp eax, edi
jb 0x402946
push dword [esp + 0xc]
movzx eax, word [esp + 0x44]
push eax
push edi
push ebx
call fcn.004b6868
movzx ecx, word [esp + 0x50]
add esp, 0x10
cmp eax, ecx
jb 0x40296e
push 0x4d5c64
call fcn.00410186
movzx eax, word [esp + 0x20]
pop ecx
mov ecx, dword [esp + 0x34]
lea eax, [ecx + eax + 2]
xor ebx, ebx
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
jl 0x402504
push ebx
push dword [esp + 0x58]
push dword [esp + 0x14]
call fcn.004b6d9f
add esp, 0xc
test eax, eax
jne 0x4029bb
push dword [esp + 0xc]
lea eax, [esp + 0x48]
push edi
push 4
push eax
call fcn.004b6868
add esp, 0x10
cmp eax, edi
jb 0x4029bb
push 2
push ebx
push dword [esp + 0x14]
call fcn.004b6d9f
add esp, 0xc
test eax, eax
jne 0x4029bb
push dword [esp + 0xc]
call fcn.004b6fad
pop ecx
jmp 0x402386
push dword [esp + 0xc]
call fcn.004b6b13
pop ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
push ebx
add eax, 8
push eax
push dword [esp + 0x14]
call fcn.004b6d9f
add esp, 0xc
test eax, eax
je 0x4026cf
push 0x468
push esi
call fcn.00410186
push str.:8:UltraCompressArchive___encountered_a_problem:_ftell___FAILED_to_seek_to_calculate_the_CheckSum_
call fcn.00418e96
add esp, 0xc
jmp 0x4029d8
push dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
call fcn.00404614
pop ecx
push dword [esp + 0xc]
mov dword [esp + 0x3c], eax
call fcn.004b6b13
cmp eax, 0xffffffff
pop ecx
mov dword [esp + 0x20], eax
jne 0x40270b
push 0x479
push esi
call fcn.00410186
push str.:7:AddFilesToArchiveSub___encountered_a_problem:_ftell___FAILED_to_determine_dwArchiveSize.
call fcn.0041936e
jmp 0x4026c7
push ebx
push dword [esp + 0x34]
push dword [esp + 0x14]
call fcn.004b6d9f
add esp, 0xc
push dword [esp + 0xc]
lea eax, [esp + 0x24]
push edi
push 4
push eax
call fcn.004b6868
add esp, 0x10
cmp eax, edi
jae 0x402755
push 0x482
push esi
call fcn.00410186
push dword [esp + 0x28]
push str.:8:AddFilesToArchiveSub___FAILED:_Could_not_write_the_Archive_Size_DWORD__ld_
call fcn.00418e96
add esp, 0x10
jmp 0x4029d8
push dword [esp + 0xc]
lea eax, [esp + 0x3c]
push edi
push 4
push eax
call fcn.004b6868
add esp, 0x10
cmp eax, edi
jae 0x402783
push 0x488
push esi
call fcn.00410186
push dword [esp + 0x40]
push str.:8:AddFilesToArchiveSub___FAILED:_Could_not_write_the_CheckSum_DWORD__ld_
jmp 0x402748
mov ecx, dword [esp + 0x18]
call fcn.0041e8bf
mov ecx, dword [esp + 0xc]
call fcn.0041e8bf
push dword [esp + 0x10]
lea ecx, [esp + 0x85c]
call fcn.0041b191
pop ecx
lea eax, [esp + 0x858]
call fcn.0041bfc0
push str._nDone_
mov esi, edi
call fcn.00410186
pop ecx
jmp 0x4029ec
push 0x391
push esi
call fcn.00410186
push dword [esp + 0x18]
push str.:5:UltraCompressArchive___s___FAILED:_Could_not_write_to_the_destination_file.
jmp 0x402748
push 0x39a
push esi
call fcn.00410186
push dword [esp + 0x18]
push str.:5:UltraCompressArchive___s___FAILED:_ftell___failed_to_save_the_current_file_size_position.
jmp 0x402748
push 0x3a4
push esi
call fcn.00410186
push dword [esp + 0x30]
push dword [esp + 0x1c]
push str.:9:UltraCompressArchive___s___FAILED:_an_entry_size_was_read_to_be__ld_wich_is_invalid_
jmp 0x4029d0
push 0x3bb
push esi
mov byte [esp + 0xde], bl
call fcn.00410186
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x1c]
push str.:9:UltraCompressArchive___s___FAILED:_The_following_string_was_read_as_a_file_name_for_one_of_the_entries:___s_
jmp 0x4029d0
push 0x3c4
push esi
call fcn.00410186
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x1c]
push str.:9:UltraCompressArchive___s___FAILED:_fread___FAILED_to_read_the_file_time_stamp_for___s_
jmp 0x4029d0
push 0x3ca
push esi
call fcn.00410186
push dword [esp + 0x18]
push str.:5:UltraCompressArchive___s___FAILED:_The_time_stamp_could_not_be_written_to_the_destination.
jmp 0x402748
push 0x3ec
push esi
call fcn.00410186
push 0x56ce
push str.:8:UltraCompressArchive___FAILED:_calloc___failed_to_allocate____ld__2.25f___10__bytes_of_date:_OUT_OF_MEMORY_
jmp 0x402748
push 0x3f9
push esi
call fcn.00410186
push str._GetLastError_
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x20]
push str.:9:UltraCompressArchive___s___FAILED:_Unrecoverable_error:_the_next_block_size_for___s__could_not_be_read:_fread___FAILED:__s
call fcn.00418e96
add esp, 0x18
jmp 0x4029d8
push 0x40b
push esi
call fcn.00410186
push str._GetLastError_
lea eax, [esp + 0x64]
push eax
movzx eax, word [esp + 0x2c]
push eax
push dword [esp + 0x24]
push str.:8:UltraCompressArchive___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.00418e96
add esp, 0x1c
jmp 0x4029d8
cmp dword [esp + 0x48], ebx
jne 0x402900
push dword [esp + 0x10]
push str.:8:UltraCompressArchive___s___FAILED:_ExpandBlock___FAILED_with_no_key.
call fcn.0041936e
pop ecx
pop ecx
jmp 0x4029d8
push dword [esp + 0x48]
push dword [esp + 0x14]
push str.:8:UltraCompressArchive___s___FAILED:_ExpandBlock___FAILED_with_the_following_key:___s_.
call fcn.0041936e
add esp, 0xc
or dword [esp + 0x24], 0xffffffff
mov esi, edi
jmp 0x4029da
push 0x42c
push esi
call fcn.00410186
push dword [esp + 0x18]
push str.:5:UltraCompressArchive___s___FAILED:_A_block_could_not_be_compressed.
call fcn.00418e96
add esp, 0x10
xor esi, esi
xor ebx, ebx
jmp 0x4029da
push 0x438
push esi
call fcn.00410186
push str._GetLastError_
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x20]
push str.:9:UltraCompressArchive___s___FAILED:_The_new_block_size_for___s__could_not_be_written:_fwrite___FAILED:__s
call fcn.00418e96
add esp, 0x18
jmp 0x40293d
push 0x441
push esi
call fcn.00410186
push str._GetLastError_
lea eax, [esp + 0x864]
push eax
movzx eax, word [esp + 0x24]
push eax
push dword [esp + 0x24]
push str.:8:UltraCompressArchive___s___FAILED:_failed_to_write_a_block_of_size__ld_to_destination_file___s_:_fwrite___FAILED:__s
call fcn.00418e96
add esp, 0x1c
jmp 0x40293d
push 0x402
push esi
call fcn.00410186
movzx eax, word [esp + 0x24]
push eax
push dword [esp + 0x1c]
push str.:9:UltraCompressArchive___s___FAILED:_Unrecoverable_error:_the_size_of_the_next_block_of_compressed_data_was_read_to_be__ld_which_is_invalid.
jmp 0x4029d0
push 0x451
push esi
call fcn.00410186
push ebx
push dword [esp + 0x1c]
push str.:8:UltraCompressArchive___s___FAILED:_The_next_files_size_field_could_not_be_updated:__d
call fcn.00418e96
add esp, 0x14
xor esi, esi
mov ecx, dword [esp + 0x18]
call fcn.0041e8bf
mov ecx, dword [esp + 0xc]
call fcn.0041e8bf
cmp dword [esp + 0x2c], ebx
je 0x4029fc
push dword [esp + 0x2c]
call fcn.004b651e
pop ecx
lea edi, [esp + 0x858]
call fcn.0041c5ff
test eax, eax
je 0x402a22
mov eax, edi
call fcn.0041bfc0
test eax, eax
jne 0x402a22
push str.:4:UltraCompressArchive___encountered_a_problem:_The_temp_file_could_not_be_deleted.
call fcn.00418e96
pop ecx
mov eax, esi
neg eax
sbb eax, eax
and eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x145c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004b7140
mov esp, ebp
pop ebp
ret