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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x229c
call fcn.004d1740
mov eax, dword [0x51f5d0]
xor eax, esp
mov dword [esp + 0x2298], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
push edi
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x14]
xor ebx, ebx
mov edi, 0x7ff
push edi
mov dword [esp + 0x44], eax
lea eax, [esp + 0x19d]
push ebx
push eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x1a4], bl
call fcn.004c05d0
add esp, 0xc
push edi
lea eax, [esp + 0x12a5]
push ebx
push eax
mov byte [esp + 0x12ac], bl
call fcn.004c05d0
add esp, 0xc
push edi
lea eax, [esp + 0xaa5]
push ebx
push eax
mov byte [esp + 0xaac], bl
call fcn.004c05d0
add esp, 0xc
push 0x103
lea eax, [esp + 0x99d]
push ebx
push eax
mov byte [esp + 0x9a4], bl
call fcn.004c05d0
xor eax, eax
lea edi, [esp + 0x44]
add esp, 0xc
mov dword [esp + 0x34], ebx
mov edx, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], ebx
stosd dword es:[edi], eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x14], ebx
mov dword [0x524854], ebx
call fcn.00485754
test eax, eax
je 0x4014f0
mov dword [0x524850], ebx
xor eax, eax
jmp 0x401db9
cmp dword [esp + 0x10], ebx
je 0x4014fc
push dword [esp + 0x10]
jmp 0x401527
mov edx, dword [esp + 0x30]
call fcn.00485754
test eax, eax
jne 0x401526
push dword [esp + 0x30]
mov ecx, 0x800
lea eax, [esp + 0xaa4]
call fcn.00485786
pop ecx
call fcn.00485acb
jmp 0x401539
push esi
mov ecx, 0x800
lea eax, [esp + 0xaa4]
call fcn.00485786
pop ecx
lea eax, [esp + 0xaa0]
push eax
push esi
call fcn.004c03bf
test eax, eax
pop ecx
pop ecx
jne 0x40156c
lea esi, [esp + 0xaa0]
call fcn.00485f69
mov eax, esi
push str._Unpacked
push eax
call fcn.004bf9b0
mov esi, dword [esp + 0x20]
pop ecx
pop ecx
push 0x159
push str..Archive.c
mov edx, 0x4de27c
mov ecx, esi
call fcn.0041c35a
mov edi, eax
cmp edi, ebx
pop ecx
pop ecx
mov dword [esp + 0x10], edi
jne 0x40159a
mov edi, esi
call fcn.0041a56b
jmp 0x4014e3
mov esi, dword [esp + 0x18]
push str..exe
call fcn.00486054
push eax
call fcn.004c03bf
test eax, eax
pop ecx
pop ecx
jne 0x4015da
cmp dword [ebp + 0x1c], ebx
je 0x4015c4
push str._nLooking_for_self_extraction...
call fcn.004106d5
pop ecx
mov ecx, esi
call fcn.00402de7
mov esi, eax
push ebx
push esi
push edi
call fcn.004bfb1f
add esp, 0xc
jmp 0x4015dc
xor esi, esi
push edi
push 1
lea eax, [esp + 0x4c]
push 4
push eax
call fcn.004c0915
add esp, 0x10
cmp dword [ebp + 0x1c], ebx
je 0x4015fe
push str._nValidating_CheckSum...
call fcn.004106d5
pop ecx
push edi
push 1
lea eax, [esp + 0x50]
push 4
push eax
call fcn.004c0915
mov ecx, dword [esp + 0x54]
push edi
call fcn.00403ddd
add esp, 0x14
push ebx
add esi, 0x10
push esi
push edi
mov dword [esp + 0x30], eax
call fcn.004bfb1f
add esp, 0xc
mov esi, str.222PAULAARCHIVE222JesusIAdoreYou
push edi
call fcn.004bfd7e
pop ecx
movsx ecx, byte [esi]
cmp eax, ecx
jne 0x401674
inc esi
cmp byte [esi], bl
jne 0x401631
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x48]
je 0x40169b
cmp dword [ebp + 0x1c], ebx
je 0x40165e
push str._nERROR:_CheckSum_failed._The_given_archive_is_corrupt_
call fcn.004106d5
pop ecx
push edi
call fcn.0041c787
pop ecx
mov dword [0x524854], 1
jmp 0x4014e3
push edi
call fcn.0041c787
cmp dword [ebp + 0x1c], ebx
pop ecx
je 0x40168b
push str._nERROR:_The_given_archive_is_invalid_or_corrupt_
call fcn.004106d5
pop ecx
mov edx, dword [esp + 0x18]
xor ecx, ecx
call fcn.0041ab42
jmp 0x4014e3
mov dword [esp + 0x18], ebx
push dword [esp + 0x10]
lea eax, [esp + 0x20]
push 1
push 4
push eax
mov dword [esp + 0x2c], ebx
call fcn.004c0915
add esp, 0x10
cmp eax, 1
jae 0x4016e8
push dword [esp + 0x10]
call fcn.004c064a
test eax, eax
pop ecx
jne 0x401cc3
cmp dword [ebp + 0x1c], ebx
je 0x4016e8
push 0x1ad
mov edi, str._n________ERROR__d________
push edi
call fcn.004106d5
pop ecx
pop ecx
jmp 0x4016ed
mov edi, str._n________ERROR__d________
cmp dword [esp + 0x1c], ebx
jl 0x401cdf
push 0x800
lea eax, [esp + 0x19c]
push ebx
push eax
call fcn.004c05d0
add esp, 0xc
xor esi, esi
push dword [esp + 0x10]
call fcn.004bfd7e
cmp eax, ebx
pop ecx
mov byte [esp + esi + 0x198], al
je 0x40172d
inc esi
cmp esi, 0x800
jb 0x40170f
cmp esi, 0x800
jae 0x401cf0
push 8
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.004c05d0
add esp, 0xc
push dword [esp + 0x10]
lea eax, [esp + 0x38]
push 1
push 8
push eax
call fcn.004c0915
add esp, 0x10
cmp eax, 1
jb 0x401d03
cmp dword [esp + 0x1c], ebx
jne 0x401786
lea edx, [esp + 0x198]
call fcn.00485754
test eax, eax
je 0x401786
inc dword [esp + 0x3c]
jmp 0x40169f
mov edx, dword [esp + 0x30]
call fcn.00485754
test eax, eax
jne 0x4017ac
lea eax, [esp + 0x198]
call fcn.00485acb
mov ecx, dword [esp + 0x30]
mov ebx, eax
call fcn.00485edb
xor ebx, ebx
cmp dword [ebp + 0x1c], ebx
je 0x401858
cmp dword [ebp + 0x1c], 0xde
jne 0x401844
push 0x36
lea eax, [esp + 0x5d]
push ebx
push eax
mov byte [esp + 0x64], bl
call fcn.004c05d0
add esp, 0xc
push 0x7ff
lea eax, [esp + 0x1aa5]
push ebx
push eax
mov byte [esp + 0x1aac], bl
call fcn.004c05d0
lea eax, [esp + 0x1a4]
add esp, 0xc
push eax
mov edi, 0x800
mov ecx, edi
lea eax, [esp + 0x1aa4]
call fcn.00485786
pop ecx
mov esi, eax
call fcn.00485a88
call fcn.00485f69
push ebx
push str..dat
push str..wav
mov eax, esi
push edi
push eax
call fcn.00486f45
add esp, 0x14
mov eax, esi
push eax
push 0x37
pop ecx
lea eax, [esp + 0x5c]
call fcn.00485786
pop ecx
jmp 0x40184b
lea eax, [esp + 0x198]
push eax
push str._nExpanding:___s_
call fcn.004106d5
pop ecx
pop ecx
lea edx, [esp + 0xaa0]
lea ecx, [esp + 0x198]
call fcn.00485d15
lea eax, [esp + 0x198]
push eax
lea eax, [esp + 0x12a4]
push eax
call fcn.004bf9a0
lea eax, [esp + 0x12a8]
call fcn.00485acb
push eax
call fcn.0041a61c
add esp, 0xc
test eax, eax
jne 0x4018c5
push ebx
lea ecx, [esp + 0x12a4]
call fcn.0041a8fa
pop ecx
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x12a0]
push eax
call fcn.0041a61c
test eax, eax
pop ecx
je 0x401d0f
cmp dword [ebp + 0x18], ebx
jne 0x40193d
lea edi, [esp + 0x198]
call fcn.0041a56b
test eax, eax
je 0x40193d
push ebx
lea eax, [esp + 0x54]
push eax
push ebx
mov eax, edi
push ebx
push eax
call fcn.0041ac68
add esp, 0x14
test eax, eax
jne 0x4018f5
inc dword [esp + 0x14]
push 0xea60
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.0041bb32
add esp, 0xc
test eax, eax
jge 0x40193d
push 1
push dword [esp + 0x20]
push dword [esp + 0x18]
call fcn.004bfb1f
add esp, 0xc
test eax, eax
je 0x40169f
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x21a
jmp 0x401d61
call fcn.004af84c
mov dword [esp + 0x24], eax
xor edi, edi
push 0x22a
push str..Archive.c
mov edx, 0x4de3b8
lea ecx, [esp + 0x1a0]
call fcn.0041c35a
cmp eax, ebx
pop ecx
pop ecx
mov dword [esp + 0x28], eax
jne 0x401a4d
call fcn.004af84c
sub eax, dword [esp + 0x24]
cmp eax, 0x1194
ja 0x4019b8
cmp dword [0x524850], ebx
jne 0x4019b8
lea esi, [esp + 0x198]
call fcn.00486317
mov eax, esi
push eax
call fcn.004bf880
pop ecx
mov ecx, esi
dec ecx
cmp byte [eax + ecx], 0x5c
je 0x4019b8
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 0xf
jl 0x401948
cmp dword [ebp + 0x1c], ebx
je 0x401a0a
lea eax, [esp + 0x198]
push eax
call fcn.004bf880
pop ecx
lea ecx, [esp + 0x198]
dec ecx
cmp byte [eax + ecx], 0x5c
je 0x401a0a
push dword [esp + 0x10]
call fcn.004bf80a
pop ecx
push eax
push 0x23e
push str._n________ERROR__d__d________
call fcn.004106d5
add esp, 0xc
lea eax, [esp + 0x198]
push eax
push str._n___Could_not_open_destination___s__for_writing_
call fcn.004106d5
pop ecx
pop ecx
cmp dword [0x524850], ebx
jne 0x401a16
inc dword [esp + 0x14]
cmp dword [esp + 0x1c], ebx
jle 0x40169f
push 1
push dword [esp + 0x20]
push dword [esp + 0x18]
call fcn.004bfb1f
add esp, 0xc
test eax, eax
je 0x40169f
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x248
jmp 0x401d61
mov edi, dword [esp + 0x2c]
inc dword [esp + 0x18]
cmp edi, ebx
jne 0x401a75
push 1
push 0xc366
call fcn.004bf452
cmp eax, ebx
pop ecx
pop ecx
mov dword [esp + 0x2c], eax
je 0x401d23
mov edi, eax
cmp dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
jle 0x401b6b
push dword [esp + 0x10]
lea eax, [esp + 0x24]
push 1
push 2
push eax
call fcn.004c0915
add esp, 0x10
cmp eax, 1
jb 0x401d2f
cmp word [esp + 0x20], bx
je 0x401d57
movzx eax, word [esp + 0x20]
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fcomp qword [0x51bb60]
fnstsw ax
test ah, 0x41
je 0x401d57
movzx esi, word [esp + 0x20]
push dword [esp + 0x10]
push esi
push 1
push edi
call fcn.004c0915
add esp, 0x10
cmp eax, esi
jb 0x401d3b
push dword [esp + 0x40]
add esi, edi
push esi
push dword [esp + 0x28]
mov eax, edi
call fcn.00402a82
movzx eax, ax
add esp, 0xc
cmp ax, bx
je 0x401d47
push dword [esp + 0x28]
movzx esi, ax
movzx eax, word [esp + 0x24]
push esi
add eax, edi
push 1
push eax
call fcn.004bf5f0
add esp, 0x10
cmp eax, esi
jae 0x401b40
cmp dword [ebp + 0x1c], ebx
je 0x401b3c
push 0x29d
push str._n________ERROR__d________
call fcn.004106d5
pop ecx
pop ecx
inc dword [esp + 0x14]
cmp dword [ebp + 0x1c], ebx
je 0x401b50
push 0x4de410
call fcn.004106d5
pop ecx
movzx eax, word [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax + 2]
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jl 0x401a83
push dword [esp + 0x28]
call fcn.0041c787
pop ecx
mov dword [esp + 0x28], ebx
call fcn.0045fba0
test eax, eax
je 0x401c49
push 0x103
lea eax, [esp + 0x95]
push ebx
push eax
mov byte [esp + 0x9c], bl
call fcn.004c05d0
lea eax, [esp + 0x1a4]
add esp, 0xc
push eax
mov ecx, 0x104
lea eax, [esp + 0x94]
call fcn.00485786
pop ecx
mov esi, eax
call fcn.00485a88
mov eax, esi
push eax
mov esi, str.ErrorLog
call fcn.004858c1
test eax, eax
pop ecx
jne 0x401c49
mov edi, str..txt
lea ebx, [esp + 0x90]
call fcn.00485928
test eax, eax
jne 0x401c47
lea eax, [esp + 0x198]
push eax
mov ecx, 0xfa
mov eax, ebx
call fcn.00485786
pop ecx
call fcn.004c0a8c
push eax
push str._dTMP
mov eax, 0x104
mov edi, ebx
call fcn.00486dce
pop ecx
pop ecx
call fcn.0041a56b
test eax, eax
je 0x401c43
lea eax, [esp + 0x198]
call fcn.0041a0f3
lea eax, [esp + 0x198]
push 1
push eax
mov ecx, ebx
call fcn.00419613
pop ecx
pop ecx
jmp 0x401c47
inc dword [esp + 0x14]
xor ebx, ebx
push ebx
push connect
push 3
push ebx
push 7
push 0x100
lea eax, [esp + 0x1b0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x401c8d
cmp dword [ebp + 0x1c], ebx
je 0x401c84
push 0x2c2
push str._n________ERROR__d________
call fcn.004106d5
pop ecx
pop ecx
inc dword [esp + 0x14]
jmp 0x40169f
lea eax, [esp + 0x34]
push eax
push eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x401cb9
cmp dword [ebp + 0x1c], ebx
je 0x401cb5
push 0x2c9
push str._n________ERROR__d________
call fcn.004106d5
pop ecx
pop ecx
inc dword [esp + 0x14]
call fcn.0041cc21
jmp 0x40169f
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], ebx
je 0x401d6f
push str._nDone_
call fcn.004106d5
pop ecx
jmp 0x401d6f
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x1b4
push edi
jmp 0x401d66
cmp dword [ebp + 0x1c], ebx
mov byte [esp + 0x216], bl
je 0x401d6d
push 0x1ca
jmp 0x401ced
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x1d3
jmp 0x401ced
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
lea eax, [esp + 0x12a0]
push eax
push str._nERROR:_Could_not_create_directory___s_
jmp 0x401d66
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x25f
jmp 0x401d61
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x26b
jmp 0x401d61
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x27d
jmp 0x401d61
xor esi, esi
cmp dword [esp + 0x40], ebx
je 0x401d6f
inc esi
or dword [esp + 0x18], 0xffffffff
jmp 0x401d6f
cmp dword [ebp + 0x1c], ebx
je 0x401d6d
push 0x274
push str._n________ERROR__d________
call fcn.004106d5
pop ecx
pop ecx
xor esi, esi
push dword [esp + 0x10]
call fcn.0041c787
cmp dword [esp + 0x2c], ebx
pop ecx
je 0x401d89
push dword [esp + 0x28]
call fcn.0041c787
pop ecx
cmp dword [esp + 0x2c], ebx
je 0x401d99
push dword [esp + 0x2c]
call fcn.004bf2a6
pop ecx
cmp dword [esp + 0x3c], ebx
mov dword [0x524850], ebx
jle 0x401daf
cmp dword [esp + 0x18], ebx
jle 0x401daf
mov dword [esp + 0x18], ebx
mov eax, esi
neg eax
sbb eax, eax
and eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x22a4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004bfeb5
mov esp, ebp
pop ebp
ret