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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1454
call fcn.004d1740
mov eax, dword [0x51f5d0]
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.004c05d0
add esp, 0xc
push esi
lea eax, [ebp - 0x807]
push ebx
push eax
mov byte [ebp - 0x808], bl
call fcn.004c05d0
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.00485754
test eax, eax
je 0x401e8f
xor eax, eax
jmp 0x4026d6
push dword [ebp - 0x142c]
mov edi, 0x800
mov ecx, edi
lea eax, [ebp - 0x808]
call fcn.00485786
pop ecx
call fcn.004af84c
mov esi, eax
call fcn.004c0a8c
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.00486dce
mov esi, dword [ebp - 0x142c]
push 0x31e
mov edi, str..Archive.c
push edi
mov edx, 0x4de27c
mov ecx, esi
call fcn.0041c35a
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 0x1410], eax
jne 0x401f05
mov edi, esi
call fcn.0041a56b
jmp 0x401e88
push 0x325
push edi
mov edx, 0x4de440
lea ecx, [ebp - 0x808]
call fcn.0041c35a
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x140c], eax
jne 0x401f38
push dword [ebp - 0x1410]
call fcn.0041c787
pop ecx
jmp 0x401e88
push str..exe
call fcn.00486054
push eax
call fcn.004c03bf
xor edi, edi
pop ecx
inc edi
test eax, eax
pop ecx
jne 0x40201e
push str._nLooking_for_self_extraction...
call fcn.004106d5
pop ecx
mov ecx, esi
call fcn.00402de7
cmp eax, ebx
mov dword [ebp - 0x1424], eax
jle 0x402024
push 0x3ff
lea eax, [ebp - 0xc07]
push ebx
push eax
mov byte [ebp - 0xc08], bl
call fcn.004c05d0
add esp, 0xc
cmp dword [ebp - 0x1424], ebx
mov dword [ebp - 0x1414], ebx
jle 0x402024
mov ecx, dword [ebp - 0x1424]
sub ecx, dword [ebp - 0x1414]
mov eax, 0x400
cmp ecx, eax
ja 0x401fb9
mov eax, ecx
push dword [ebp - 0x1410]
push eax
lea eax, [ebp - 0xc08]
push edi
push eax
call fcn.004c0915
mov esi, eax
add esp, 0x10
cmp esi, ebx
jle 0x402007
push dword [ebp - 0x140c]
lea eax, [ebp - 0xc08]
push esi
push edi
push eax
call fcn.004bf5f0
add esp, 0x10
cmp eax, esi
jb 0x402007
inc dword [ebp - 0x1414]
mov eax, dword [ebp - 0x1414]
cmp eax, dword [ebp - 0x1424]
jl 0x401fa2
jmp 0x402024
push dword [ebp - 0x1410]
call fcn.0041c787
pop ecx
push dword [ebp - 0x140c]
jmp 0x401f2d
mov dword [ebp - 0x1424], ebx
mov esi, dword [ebp - 0x1410]
push esi
push edi
lea eax, [ebp - 0x141c]
push 4
push eax
call fcn.004c0915
push dword [ebp - 0x140c]
lea eax, [ebp - 0x141c]
push edi
push 4
push eax
call fcn.004bf5f0
push str._nValidating_CheckSum...
call fcn.004106d5
add esp, 0x24
push esi
push edi
lea eax, [ebp - 0x1448]
push 4
push eax
call fcn.004c0915
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1448]
push edi
push 4
push eax
call fcn.004bf5f0
mov ecx, dword [ebp - 0x141c]
push esi
call fcn.00403ddd
mov dword [ebp - 0x1440], eax
mov eax, dword [ebp - 0x1424]
add esp, 0x24
add eax, 8
push ebx
push eax
push esi
call fcn.004bfb1f
add esp, 0xc
push esi
push edi
lea eax, [ebp - 0x1450]
push 8
push eax
call fcn.004c0915
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1450]
push edi
push 8
push eax
call fcn.004bf5f0
add esp, 0x20
mov dword [ebp - 0x1420], str.222PAULAARCHIVE222JesusIAdoreYou
push esi
call fcn.004bfd7e
pop ecx
push dword [ebp - 0x140c]
mov dword [ebp - 0x1430], eax
push eax
call fcn.004c040f
mov eax, dword [ebp - 0x1420]
pop ecx
pop ecx
movsx ecx, byte [eax]
cmp dword [ebp - 0x1430], ecx
jne 0x402132
inc eax
cmp byte [eax], bl
mov dword [ebp - 0x1420], eax
jne 0x4020dc
mov eax, dword [ebp - 0x1440]
cmp eax, dword [ebp - 0x1448]
je 0x402163
push str._nERROR:_CheckSum_failed._The_given_archive_is_corrupt_
call fcn.004106d5
pop ecx
push esi
jmp 0x40200d
push esi
call fcn.0041c787
pop ecx
push dword [ebp - 0x140c]
call fcn.0041c787
mov dword [esp], str._nERROR:_The_given_archive_is_invalid_or_corrupt_
call fcn.004106d5
mov edx, dword [ebp - 0x142c]
pop ecx
xor ecx, ecx
call fcn.0041ab42
jmp 0x401e88
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.004c0915
add esp, 0x10
cmp eax, edi
jae 0x4021b1
push dword [ebp - 0x1410]
call fcn.004c064a
test eax, eax
pop ecx
jne 0x4024dd
push 0x38c
push esi
call fcn.004106d5
pop ecx
pop ecx
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1428]
push edi
push 4
push eax
call fcn.004bf5f0
add esp, 0x10
cmp eax, edi
jb 0x4025f9
push dword [ebp - 0x140c]
call fcn.004bf80a
cmp eax, 0xffffffff
pop ecx
je 0x402600
sub eax, 4
cmp dword [ebp - 0x1428], ebx
mov dword [ebp - 0x1454], eax
jl 0x402607
push 0x800
lea eax, [ebp - 0x1408]
push ebx
push eax
call fcn.004c05d0
add esp, 0xc
mov dword [ebp - 0x1414], ebx
push dword [ebp - 0x1410]
call fcn.004bfd7e
pop ecx
push dword [ebp - 0x140c]
mov dword [ebp - 0x1430], eax
push eax
call fcn.004c040f
mov eax, dword [ebp - 0x1430]
cmp eax, ebx
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1414]
mov byte [ebp + ecx - 0x1408], al
je 0x40225f
inc dword [ebp - 0x1414]
cmp dword [ebp - 0x1414], 0x800
jb 0x402216
cmp dword [ebp - 0x1414], 0x800
jae 0x40260e
push 8
lea eax, [ebp - 0x1450]
push ebx
push eax
call fcn.004c05d0
add esp, 0xc
push dword [ebp - 0x1410]
lea eax, [ebp - 0x1450]
push edi
push 8
push eax
call fcn.004c0915
add esp, 0x10
cmp eax, edi
jb 0x40261b
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1450]
push edi
push 8
push eax
call fcn.004bf5f0
add esp, 0x10
cmp eax, edi
jb 0x402622
lea eax, [ebp - 0x1408]
push eax
push str._nRecompress:___s_
call fcn.004106d5
inc dword [ebp - 0x1420]
cmp dword [ebp - 0x1418], ebx
pop ecx
pop ecx
jne 0x4022fd
push edi
push 0xc366
call fcn.004bf452
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1418], eax
je 0x402629
cmp dword [ebp - 0x1428], ebx
mov dword [ebp - 0x1438], ebx
mov dword [ebp - 0x1430], ebx
jle 0x402476
push dword [ebp - 0x1410]
lea eax, [ebp - 0x1434]
push edi
push 2
push eax
call fcn.004c0915
add esp, 0x10
cmp eax, edi
jb 0x402630
cmp word [ebp - 0x1434], bx
je 0x402672
movzx ecx, word [ebp - 0x1434]
mov dword [ebp - 0x1414], ecx
fild dword [ebp - 0x1414]
fcomp qword [0x51bb60]
fnstsw ax
test ah, 0x41
je 0x402672
push dword [ebp - 0x1410]
push ecx
push edi
push dword [ebp - 0x1418]
call fcn.004c0915
movzx ecx, word [ebp - 0x1434]
add esp, 0x10
cmp eax, ecx
jb 0x402637
mov eax, dword [ebp - 0x1418]
push dword [ebp - 0x1444]
lea ecx, [eax + 0x56d8]
push ecx
push dword [ebp - 0x1434]
call fcn.00402a82
movzx eax, ax
add esp, 0xc
cmp ax, bx
je 0x40263e
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.004026e5
movzx eax, ax
add esp, 0x10
test ax, ax
mov dword [ebp - 0x143c], eax
je 0x402651
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.004bf5f0
add esp, 0x10
cmp eax, edi
jb 0x402664
push dword [ebp - 0x140c]
movzx eax, word [ebp - 0x143c]
push eax
push edi
push ebx
call fcn.004bf5f0
movzx ecx, word [ebp - 0x143c]
add esp, 0x10
cmp eax, ecx
jb 0x40266b
push 0x4de410
call fcn.004106d5
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 0x402315
push ebx
push dword [ebp - 0x1454]
push dword [ebp - 0x140c]
call fcn.004bfb1f
add esp, 0xc
test eax, eax
jne 0x402679
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1438]
push edi
push 4
push eax
call fcn.004bf5f0
add esp, 0x10
cmp eax, edi
jb 0x402679
push 2
push ebx
push dword [ebp - 0x140c]
call fcn.004bfb1f
add esp, 0xc
test eax, eax
jne 0x402679
push dword [ebp - 0x140c]
call fcn.004bfd22
pop ecx
jmp 0x40216e
push dword [ebp - 0x140c]
call fcn.004bf80a
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.004bfb1f
add esp, 0xc
test eax, eax
je 0x402516
push 0x468
jmp 0x40267e
push dword [ebp - 0x140c]
mov ecx, dword [ebp - 0x141c]
call fcn.00403ddd
pop ecx
push dword [ebp - 0x140c]
mov dword [ebp - 0x1440], eax
call fcn.004bf80a
cmp eax, 0xffffffff
pop ecx
mov dword [ebp - 0x141c], eax
jne 0x40254f
push 0x479
jmp 0x40267e
push ebx
push dword [ebp - 0x1424]
push dword [ebp - 0x140c]
call fcn.004bfb1f
add esp, 0xc
push dword [ebp - 0x140c]
lea eax, [ebp - 0x141c]
push edi
push 4
push eax
call fcn.004bf5f0
add esp, 0x10
cmp eax, edi
jae 0x40258a
push 0x482
jmp 0x40267e
push dword [ebp - 0x140c]
lea eax, [ebp - 0x1440]
push edi
push 4
push eax
call fcn.004bf5f0
add esp, 0x10
cmp eax, edi
jae 0x4025b0
push 0x488
jmp 0x40267e
push dword [ebp - 0x1410]
call fcn.0041c787
pop ecx
push dword [ebp - 0x140c]
call fcn.0041c787
pop ecx
push edi
push dword [ebp - 0x142c]
lea ecx, [ebp - 0x808]
call fcn.00419613
lea eax, [ebp - 0x808]
call fcn.0041a0f3
push str._nDone_
mov esi, edi
call fcn.004106d5
add esp, 0xc
jmp 0x4026a0
push 0x391
jmp 0x40267e
push 0x39a
jmp 0x40267e
push 0x3a4
jmp 0x40267e
mov byte [ebp - 0x138a], bl
push 0x3bb
jmp 0x40267e
push 0x3c4
jmp 0x40267e
push 0x3ca
jmp 0x40267e
push 0x3ec
jmp 0x40267e
push 0x3f9
jmp 0x40267e
push 0x40b
jmp 0x40267e
cmp dword [ebp - 0x1444], ebx
je 0x402686
or dword [ebp - 0x1420], 0xffffffff
mov esi, edi
jmp 0x402688
push 0x42c
push esi
call fcn.004106d5
pop ecx
xor esi, esi
pop ecx
xor ebx, ebx
jmp 0x402688
push 0x438
jmp 0x402656
push 0x441
jmp 0x402656
push 0x402
jmp 0x40267e
push 0x451
push esi
call fcn.004106d5
pop ecx
pop ecx
xor esi, esi
push dword [ebp - 0x1410]
call fcn.0041c787
pop ecx
push dword [ebp - 0x140c]
call fcn.0041c787
pop ecx
cmp dword [ebp - 0x1418], ebx
je 0x4026b4
push dword [ebp - 0x1418]
call fcn.004bf2a6
pop ecx
lea edi, [ebp - 0x808]
call fcn.0041a56b
test eax, eax
je 0x4026ca
mov eax, edi
call fcn.0041a0f3
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.004bfeb5
leave
ret