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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x215c
call fcn.004115d0
mov eax, dword [0x4d82d4]
xor eax, esp
mov dword [esp + 0x2158], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], 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 + 0x4c], eax
lea eax, [esp + 0x5d]
push ebx
push eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x64], bl
call fcn.00401f80
add esp, 0xc
push edi
lea eax, [esp + 0x1165]
push ebx
push eax
mov byte [esp + 0x116c], bl
call fcn.00401f80
add esp, 0xc
push edi
lea eax, [esp + 0x965]
push ebx
push eax
mov byte [esp + 0x96c], bl
call fcn.00401f80
add esp, 0xc
push 0x103
lea eax, [esp + 0x85d]
push ebx
push eax
mov byte [esp + 0x864], bl
call fcn.00401f80
xor eax, eax
lea edi, [esp + 0x48]
add esp, 0xc
mov dword [esp + 0x38], ebx
mov edx, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
stosd dword es:[edi], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x14], ebx
mov dword [0x4eacd0], ebx
call fcn.00439c56
test eax, eax
je 0x498bc3
mov dword [0x4e9ccc], ebx
xor eax, eax
jmp 0x498f85
cmp dword [esp + 0x1c], ebx
je 0x498bcf
push dword [esp + 0x1c]
jmp 0x498bfa
mov edx, dword [esp + 0x30]
call fcn.00439c56
test eax, eax
jne 0x498bf9
push dword [esp + 0x30]
mov ecx, 0x800
lea eax, [esp + 0x964]
call fcn.00438b01
pop ecx
call fcn.0043893a
jmp 0x498c0c
push esi
mov ecx, 0x800
lea eax, [esp + 0x964]
call fcn.00438b01
pop ecx
lea eax, [esp + 0x960]
push eax
push esi
call fcn.00401811
pop ecx
pop ecx
test eax, eax
jne 0x498c3f
lea esi, [esp + 0x960]
call fcn.0043a989
mov eax, esi
push str._Unpacked
push eax
call fcn.00401bb0
mov esi, dword [esp + 0x18]
pop ecx
pop ecx
push 0x159
push str.Archive.c
mov edx, 0x4a829c
mov ecx, esi
call fcn.0048ae1a
mov edi, eax
pop ecx
pop ecx
mov dword [esp + 0x1c], edi
cmp edi, ebx
jne 0x498c6d
mov edi, esi
call fcn.0048c243
jmp 0x498bb6
mov esi, dword [esp + 0x10]
push str..exe
call fcn.0043a830
push eax
call fcn.00401811
pop ecx
pop ecx
test eax, eax
jne 0x498c9d
mov ecx, esi
call fcn.00498074
mov esi, eax
push ebx
push esi
push edi
call fcn.0040287c
add esp, 0xc
jmp 0x498c9f
xor esi, esi
push edi
push 1
lea eax, [esp + 0x4c]
push 4
push eax
call fcn.00402244
push edi
push 1
lea eax, [esp + 0x58]
push 4
push eax
call fcn.00402244
mov ecx, dword [esp + 0x64]
mov edx, edi
call fcn.00496aa1
push ebx
add esi, 0x10
push esi
push edi
mov dword [esp + 0x50], eax
call fcn.0040287c
add esp, 0x2c
mov esi, str.222PAULAARCHIVE222JesusIAdoreYou
push edi
call fcn.00401e7e
pop ecx
movsx ecx, byte [esi]
cmp eax, ecx
jne 0x498d12
inc esi
cmp byte [esi], bl
jne 0x498cdf
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x40]
je 0x498d29
mov ecx, edi
call fcn.0048d8ca
mov dword [0x4eacd0], 1
jmp 0x498bb6
mov ecx, edi
call fcn.0048d8ca
mov ecx, dword [esp + 0x10]
xor edx, edx
call fcn.0048c9ae
jmp 0x498bb6
mov dword [esp + 0x10], ebx
mov edi, dword [esp + 0x1c]
push edi
xor esi, esi
inc esi
push esi
lea eax, [esp + 0x20]
push 4
push eax
mov dword [esp + 0x28], ebx
call fcn.00402244
add esp, 0x10
cmp eax, esi
jae 0x498d5c
push edi
call fcn.004019d8
pop ecx
test eax, eax
jne 0x498f3f
cmp dword [esp + 0x18], ebx
jl 0x498f3d
push 0x800
lea eax, [esp + 0x5c]
push ebx
push eax
call fcn.00401f80
add esp, 0xc
xor esi, esi
push edi
call fcn.00401e7e
pop ecx
mov byte [esp + esi + 0x58], al
cmp eax, ebx
je 0x498d93
inc esi
cmp esi, 0x800
jb 0x498d7b
cmp esi, 0x800
jae 0x499185
push 8
lea eax, [esp + 0x3c]
push ebx
push eax
call fcn.00401f80
add esp, 0xc
push edi
push 1
lea eax, [esp + 0x40]
push 8
push eax
call fcn.00402244
add esp, 0x10
cmp eax, 1
jb 0x498f3d
cmp dword [esp + 0x18], ebx
jne 0x498de6
lea edx, [esp + 0x58]
call fcn.00439c56
test eax, eax
je 0x498de6
inc dword [esp + 0x34]
jmp 0x498d2d
mov edx, dword [esp + 0x30]
call fcn.00439c56
test eax, eax
jne 0x498e09
lea eax, [esp + 0x58]
call fcn.0043893a
mov ecx, dword [esp + 0x30]
mov ebx, eax
call fcn.0043ad3a
xor ebx, ebx
cmp dword [ebp + 0x1c], ebx
je 0x498e70
cmp dword [ebp + 0x1c], 0xde
jne 0x498e70
push 0x7ff
lea eax, [esp + 0x1965]
push ebx
push eax
mov byte [esp + 0x196c], bl
call fcn.00401f80
lea eax, [esp + 0x64]
add esp, 0xc
push eax
mov edi, 0x800
mov ecx, edi
lea eax, [esp + 0x1964]
call fcn.00438b01
pop ecx
mov esi, eax
call fcn.0043897b
call fcn.0043a989
push ebx
push str..dat
push str..wav
mov eax, esi
push edi
push eax
call fcn.0043a534
add esp, 0x14
lea edx, [esp + 0x960]
lea ecx, [esp + 0x58]
call fcn.0043aa27
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x1164]
push eax
call fcn.00401ba0
lea eax, [esp + 0x1168]
call fcn.0043893a
push eax
call fcn.0048a4a9
add esp, 0xc
test eax, eax
jne 0x498ed3
push ebx
lea ecx, [esp + 0x1164]
call fcn.0048bf8c
pop ecx
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x1160]
push eax
call fcn.0048a4a9
pop ecx
test eax, eax
je 0x498f3d
cmp dword [ebp + 0x18], ebx
jne 0x498f9a
lea edi, [esp + 0x58]
call fcn.0048c243
test eax, eax
je 0x498f9a
push ebx
lea eax, [esp + 0x54]
push eax
push ebx
mov eax, edi
push ebx
push eax
call fcn.0048c8a7
add esp, 0x14
test eax, eax
jne 0x498f08
inc dword [esp + 0x14]
push 0xea60
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0048a1a7
add esp, 0xc
test eax, eax
jns 0x498f9a
push 1
push dword [esp + 0x1c]
push dword [esp + 0x24]
call fcn.0040287c
add esp, 0xc
test eax, eax
je 0x498d2d
xor esi, esi
mov ecx, dword [esp + 0x1c]
call fcn.0048d8ca
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
je 0x498f55
call fcn.0048d8ca
cmp dword [esp + 0x2c], ebx
je 0x498f65
push dword [esp + 0x2c]
call fcn.00401a00
pop ecx
mov dword [0x4e9ccc], ebx
cmp dword [esp + 0x34], ebx
jle 0x498f7b
cmp dword [esp + 0x10], ebx
jle 0x498f7b
mov dword [esp + 0x10], ebx
mov eax, esi
neg eax
sbb eax, eax
and eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2164]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00401317
mov esp, ebp
pop ebp
ret
call fcn.0041b82a
mov dword [esp + 0x24], eax
xor edi, edi
push 0x22a
push str.Archive.c
mov edx, 0x4a82dc
lea ecx, [esp + 0x60]
call fcn.0048ae1a
pop ecx
pop ecx
mov dword [esp + 0x28], eax
cmp eax, ebx
jne 0x499036
call fcn.0041b82a
sub eax, dword [esp + 0x24]
cmp eax, 0x1194
ja 0x49900b
cmp dword [0x4e9ccc], ebx
jne 0x49900b
lea esi, [esp + 0x58]
call fcn.00439757
mov eax, esi
push eax
call fcn.00401a80
pop ecx
mov ecx, esi
cmp byte [eax + ecx - 1], 0x5c
je 0x49900b
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 0xf
jl 0x498fa5
cmp dword [ebp + 0x1c], ebx
je 0x49901b
lea eax, [esp + 0x58]
push eax
call fcn.00401a80
pop ecx
cmp dword [0x4e9ccc], ebx
jne 0x499027
inc dword [esp + 0x14]
cmp dword [esp + 0x18], ebx
jle 0x498d2d
jmp 0x498f23
mov edi, dword [esp + 0x2c]
inc dword [esp + 0x10]
cmp edi, ebx
jne 0x49905e
push 1
push 0xc366
call fcn.00401a3a
pop ecx
pop ecx
mov dword [esp + 0x2c], eax
cmp eax, ebx
je 0x498f3d
mov edi, eax
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x18], ebx
jle 0x49912d
push dword [esp + 0x1c]
lea eax, [esp + 0x24]
push 1
push 2
push eax
call fcn.00402244
add esp, 0x10
cmp eax, 1
jb 0x498f3d
cmp word [esp + 0x20], bx
je 0x498f3d
movzx eax, word [esp + 0x20]
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fcomp qword [0x4d4668]
fnstsw ax
test ah, 0x41
je 0x498f3d
movzx esi, word [esp + 0x20]
push dword [esp + 0x1c]
push esi
push 1
push edi
call fcn.00402244
add esp, 0x10
cmp eax, esi
jb 0x498f3d
push dword [esp + 0x48]
add esi, edi
push esi
push dword [esp + 0x28]
mov eax, edi
call fcn.00496db2
movzx eax, ax
add esp, 0xc
cmp ax, bx
je 0x499191
push dword [esp + 0x28]
mov esi, eax
movzx eax, word [esp + 0x24]
push esi
add eax, edi
push 1
push eax
call fcn.0040257f
add esp, 0x10
cmp eax, esi
jae 0x499112
inc dword [esp + 0x14]
movzx eax, word [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x18]
jl 0x49906c
mov ecx, dword [esp + 0x28]
call fcn.0048d8ca
push ebx
push closesocket
push 3
push ebx
push 7
push 0x100
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x44], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x499165
inc dword [esp + 0x14]
jmp 0x498d2d
lea eax, [esp + 0x38]
push eax
push eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x49917b
inc dword [esp + 0x14]
call fcn.0048ad7b
jmp 0x498d2d
mov byte [esp + 0xd6], bl
jmp 0x498f3d
xor esi, esi
cmp dword [esp + 0x48], ebx
je 0x498f3f
inc esi
or dword [esp + 0x10], 0xffffffff
jmp 0x498f3f