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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1454
call fcn.004b9e10
mov eax, dword [0x5025d0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x142c], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov esi, 0x7ff
push esi
mov dword [ebp - 0x1444], eax
lea eax, [ebp - 0x1407]
push ebx
push eax
mov dword [ebp - 0x1418], ebx
mov dword [ebp - 0x1428], ebx
mov byte [ebp - 0x1408], bl
call fcn.004a8c80
add esp, 0xc
push esi
lea eax, [ebp - 0x807]
push ebx
push eax
mov byte [ebp - 0x808], bl
call fcn.004a8c80
mov edx, dword [ebp - 0x142c]
xor eax, eax
lea edi, [ebp - 0x144c]
add esp, 0xc
mov dword [ebp - 0x1450], ebx
mov dword [ebp - 0x1434], ebx
mov dword [ebp - 0x143c], ebx
mov dword [ebp - 0x1440], ebx
mov dword [ebp - 0x1448], ebx
mov dword [ebp - 0x141c], ebx
stosd dword es:[edi], eax
mov dword [ebp - 0x1438], ebx
call fcn.00477a16
test eax, eax
je 0x401da8
xor eax, eax
jmp 0x4025e8
push dword [ebp - 0x142c]
mov edi, 0x800
mov ecx, edi
lea eax, [ebp - 0x808]
call fcn.00477a48
pop ecx
call fcn.0049a965
mov esi, eax
call fcn.004a913c
add eax, esi
xor edx, edx
mov ecx, 0x1869f
div ecx
mov eax, edi
lea edi, [ebp - 0x808]
push edx
push str.__d.tmp
call fcn.00478f8d
mov esi, dword [ebp - 0x142c]
push 0x31e
mov edi, str..Archive.c
push edi
mov edx, 0x4c722c
mov ecx, esi
call fcn.0041bb64
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 0x1410], eax
jne 0x401e1e
mov edi, esi
call fcn.00419e19
jmp 0x401da1
push 0x325
push edi
mov edx, 0x4c73d4
lea ecx, [ebp - 0x808]
call fcn.0041bb64
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x140c], eax
jne 0x401e50
mov ecx, dword [ebp - 0x1410]
call fcn.0041bf91
jmp 0x401da1
push str..exe
call fcn.00478275
push eax
call fcn.004a8a6f
xor edi, edi
pop ecx
inc edi
test eax, eax
pop ecx
jne 0x401f35
push str._nLooking_for_self_extraction...
call fcn.00410436
pop ecx
mov ecx, esi
call fcn.00402cf9
cmp eax, ebx
mov dword [ebp - 0x1424], eax
jle 0x401f3b
push 0x3ff
lea eax, [ebp - 0xc07]
push ebx
push eax
mov byte [ebp - 0xc08], bl
call fcn.004a8c80
add esp, 0xc
cmp dword [ebp - 0x1424], ebx
mov dword [ebp - 0x1414], ebx
jle 0x401f3b
mov ecx, dword [ebp - 0x1424]
sub ecx, dword [ebp - 0x1414]
mov eax, 0x400
cmp ecx, eax
ja 0x401ed1
mov eax, ecx
push dword [ebp - 0x1410]
push eax
lea eax, [ebp - 0xc08]
push edi
push eax
call fcn.004a8fc5
mov esi, eax
add esp, 0x10
cmp esi, ebx
jle 0x401f1f
push dword [ebp - 0x140c]
lea eax, [ebp - 0xc08]
push esi
push edi
push eax
call fcn.004a7ca6
add esp, 0x10
cmp eax, esi
jb 0x401f1f
inc dword [ebp - 0x1414]
mov eax, dword [ebp - 0x1414]
cmp eax, dword [ebp - 0x1424]
jl 0x401eba
jmp 0x401f3b
mov ecx, dword [ebp - 0x1410]
call fcn.0041bf91
mov ecx, dword [ebp - 0x140c]
jmp 0x401e46
mov dword [ebp - 0x1424], ebx
mov esi, dword [ebp - 0x1410]
push esi
push edi
lea eax, [ebp - 0x141c]
push 4
push eax
call fcn.004a8fc5
push dword [ebp - 0x140c]
lea eax, [ebp - 0x141c]
push edi
push 4
push eax
call fcn.004a7ca6
push str._nValidating_CheckSum...
call fcn.00410436
add esp, 0x24
push esi
push edi
lea eax, [ebp - 0x1448]
push 4
push eax
call fcn.004a8fc5
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1448]
push edi
push 4
push eax
call fcn.004a7ca6
mov ecx, dword [ebp - 0x141c]
push esi
call fcn.00403ce6
mov dword [ebp - 0x1440], eax
mov eax, dword [ebp - 0x1424]
add esp, 0x24
add eax, 8
push ebx
push eax
push esi
call fcn.004a81cf
add esp, 0xc
push esi
push edi
lea eax, [ebp - 0x1450]
push 8
push eax
call fcn.004a8fc5
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1450]
push edi
push 8
push eax
call fcn.004a7ca6
add esp, 0x20
mov dword [ebp - 0x1420], str.222PAULAARCHIVE222JesusIAdoreYou
push esi
call fcn.004a842e
pop ecx
push dword [ebp - 0x140c]
mov dword [ebp - 0x1430], eax
push eax
call fcn.004a8abf
mov eax, dword [ebp - 0x1420]
pop ecx
pop ecx
movsx ecx, byte [eax]
cmp dword [ebp - 0x1430], ecx
jne 0x40204a
inc eax
cmp byte [eax], bl
mov dword [ebp - 0x1420], eax
jne 0x401ff3
mov eax, dword [ebp - 0x1440]
cmp eax, dword [ebp - 0x1448]
je 0x402079
push str._nERROR:_CheckSum_failed._The_given_archive_is_corrupt_
call fcn.00410436
pop ecx
mov ecx, esi
jmp 0x401f25
mov ecx, esi
call fcn.0041bf91
mov ecx, dword [ebp - 0x140c]
call fcn.0041bf91
push str._nERROR:_The_given_archive_is_invalid_or_corrupt_
call fcn.00410436
mov edx, dword [ebp - 0x142c]
pop ecx
xor ecx, ecx
call fcn.0041a3e7
jmp 0x401da1
mov dword [ebp - 0x1420], ebx
mov esi, str._n________ERROR__d________
push dword [ebp - 0x1410]
lea eax, [ebp - 0x1428]
push edi
push 4
push eax
mov dword [ebp - 0x1428], ebx
call fcn.004a8fc5
add esp, 0x10
cmp eax, edi
jae 0x4020c7
push dword [ebp - 0x1410]
call fcn.004a8cfa
test eax, eax
pop ecx
jne 0x4023f3
push 0x38c
push esi
call fcn.00410436
pop ecx
pop ecx
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1428]
push edi
push 4
push eax
call fcn.004a7ca6
add esp, 0x10
cmp eax, edi
jb 0x40250d
push dword [ebp - 0x140c]
call fcn.004a7ec0
cmp eax, 0xffffffff
pop ecx
je 0x402514
sub eax, 4
cmp dword [ebp - 0x1428], ebx
mov dword [ebp - 0x1454], eax
jl 0x40251b
push 0x800
lea eax, [ebp - 0x1408]
push ebx
push eax
call fcn.004a8c80
add esp, 0xc
mov dword [ebp - 0x1414], ebx
push dword [ebp - 0x1410]
call fcn.004a842e
pop ecx
push dword [ebp - 0x140c]
mov dword [ebp - 0x1430], eax
push eax
call fcn.004a8abf
mov eax, dword [ebp - 0x1430]
cmp eax, ebx
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1414]
mov byte [ebp + ecx - 0x1408], al
je 0x402175
inc dword [ebp - 0x1414]
cmp dword [ebp - 0x1414], 0x800
jb 0x40212c
cmp dword [ebp - 0x1414], 0x800
jae 0x402522
push 8
lea eax, [ebp - 0x1450]
push ebx
push eax
call fcn.004a8c80
add esp, 0xc
push dword [ebp - 0x1410]
lea eax, [ebp - 0x1450]
push edi
push 8
push eax
call fcn.004a8fc5
add esp, 0x10
cmp eax, edi
jb 0x40252f
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1450]
push edi
push 8
push eax
call fcn.004a7ca6
add esp, 0x10
cmp eax, edi
jb 0x402536
lea eax, [ebp - 0x1408]
push eax
push str._nRecompress:___s_
call fcn.00410436
inc dword [ebp - 0x1420]
cmp dword [ebp - 0x1418], ebx
pop ecx
pop ecx
jne 0x402213
push edi
push 0xc366
call fcn.004a7b08
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1418], eax
je 0x40253d
cmp dword [ebp - 0x1428], ebx
mov dword [ebp - 0x1438], ebx
mov dword [ebp - 0x1430], ebx
jle 0x40238c
push dword [ebp - 0x1410]
lea eax, [ebp - 0x1434]
push edi
push 2
push eax
call fcn.004a8fc5
add esp, 0x10
cmp eax, edi
jb 0x402544
cmp word [ebp - 0x1434], bx
je 0x402586
movzx ecx, word [ebp - 0x1434]
mov dword [ebp - 0x1414], ecx
fild dword [ebp - 0x1414]
fcomp qword [0x4fe8a0]
fnstsw ax
test ah, 0x41
je 0x402586
push dword [ebp - 0x1410]
push ecx
push edi
push dword [ebp - 0x1418]
call fcn.004a8fc5
movzx ecx, word [ebp - 0x1434]
add esp, 0x10
cmp eax, ecx
jb 0x40254b
mov eax, dword [ebp - 0x1418]
push dword [ebp - 0x1444]
lea ecx, [eax + 0x56d8]
push ecx
push dword [ebp - 0x1434]
call fcn.00402994
movzx eax, ax
add esp, 0xc
cmp ax, bx
je 0x402552
mov ebx, dword [ebp - 0x1418]
push edi
push dword [ebp - 0x1444]
push eax
mov eax, dword [ebp - 0x1418]
add eax, 0x56d8
push eax
call fcn.004025f7
movzx eax, ax
add esp, 0x10
test ax, ax
mov dword [ebp - 0x143c], eax
je 0x402565
mov ecx, dword [ebp - 0x1438]
push dword [ebp - 0x140c]
movzx eax, ax
lea eax, [ecx + eax + 2]
push edi
mov dword [ebp - 0x1438], eax
lea eax, [ebp - 0x143c]
push 2
push eax
call fcn.004a7ca6
add esp, 0x10
cmp eax, edi
jb 0x402578
push dword [ebp - 0x140c]
movzx eax, word [ebp - 0x143c]
push eax
push edi
push ebx
call fcn.004a7ca6
movzx ecx, word [ebp - 0x143c]
add esp, 0x10
cmp eax, ecx
jb 0x40257f
push 0x4c73c0
call fcn.00410436
movzx eax, word [ebp - 0x1434]
pop ecx
mov ecx, dword [ebp - 0x1430]
lea eax, [ecx + eax + 2]
xor ebx, ebx
cmp eax, dword [ebp - 0x1428]
mov dword [ebp - 0x1430], eax
jl 0x40222b
push ebx
push dword [ebp - 0x1454]
push dword [ebp - 0x140c]
call fcn.004a81cf
add esp, 0xc
test eax, eax
jne 0x40258d
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1438]
push edi
push 4
push eax
call fcn.004a7ca6
add esp, 0x10
cmp eax, edi
jb 0x40258d
push 2
push ebx
push dword [ebp - 0x140c]
call fcn.004a81cf
add esp, 0xc
test eax, eax
jne 0x40258d
push dword [ebp - 0x140c]
call fcn.004a83d2
pop ecx
jmp 0x402084
push dword [ebp - 0x140c]
call fcn.004a7ec0
pop ecx
mov dword [ebp - 0x141c], eax
mov eax, dword [ebp - 0x1424]
push ebx
add eax, 8
push eax
push dword [ebp - 0x140c]
call fcn.004a81cf
add esp, 0xc
test eax, eax
je 0x40242c
push 0x468
jmp 0x402592
push dword [ebp - 0x140c]
mov ecx, dword [ebp - 0x141c]
call fcn.00403ce6
pop ecx
push dword [ebp - 0x140c]
mov dword [ebp - 0x1440], eax
call fcn.004a7ec0
cmp eax, 0xffffffff
pop ecx
mov dword [ebp - 0x141c], eax
jne 0x402465
push 0x479
jmp 0x402592
push ebx
push dword [ebp - 0x1424]
push dword [ebp - 0x140c]
call fcn.004a81cf
add esp, 0xc
push dword [ebp - 0x140c]
lea eax, [ebp - 0x141c]
push edi
push 4
push eax
call fcn.004a7ca6
add esp, 0x10
cmp eax, edi
jae 0x4024a0
push 0x482
jmp 0x402592
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1440]
push edi
push 4
push eax
call fcn.004a7ca6
add esp, 0x10
cmp eax, edi
jae 0x4024c6
push 0x488
jmp 0x402592
mov ecx, dword [ebp - 0x1410]
call fcn.0041bf91
mov ecx, dword [ebp - 0x140c]
call fcn.0041bf91
push edi
push dword [ebp - 0x142c]
lea ecx, [ebp - 0x808]
call fcn.00418fb0
lea eax, [ebp - 0x808]
call fcn.004199a1
push str._nDone_
mov esi, edi
call fcn.00410436
add esp, 0xc
jmp 0x4025b2
push 0x391
jmp 0x402592
push 0x39a
jmp 0x402592
push 0x3a4
jmp 0x402592
mov byte [ebp - 0x138a], bl
push 0x3bb
jmp 0x402592
push 0x3c4
jmp 0x402592
push 0x3ca
jmp 0x402592
push 0x3ec
jmp 0x402592
push 0x3f9
jmp 0x402592
push 0x40b
jmp 0x402592
cmp dword [ebp - 0x1444], ebx
je 0x40259a
or dword [ebp - 0x1420], 0xffffffff
mov esi, edi
jmp 0x40259c
push 0x42c
push esi
call fcn.00410436
pop ecx
xor esi, esi
pop ecx
xor ebx, ebx
jmp 0x40259c
push 0x438
jmp 0x40256a
push 0x441
jmp 0x40256a
push 0x402
jmp 0x402592
push 0x451
push esi
call fcn.00410436
pop ecx
pop ecx
xor esi, esi
mov ecx, dword [ebp - 0x1410]
call fcn.0041bf91
mov ecx, dword [ebp - 0x140c]
call fcn.0041bf91
cmp dword [ebp - 0x1418], ebx
je 0x4025c6
push dword [ebp - 0x1418]
call fcn.004a795c
pop ecx
lea edi, [ebp - 0x808]
call fcn.00419e19
test eax, eax
je 0x4025dc
mov eax, edi
call fcn.004199a1
mov eax, esi
neg eax
sbb eax, eax
and eax, dword [ebp - 0x1420]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a8565
leave
ret