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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2194
call fcn.004122f0
mov eax, dword [0x5092e4]
xor eax, esp
mov dword [esp + 0x2190], 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 + 0x4c], eax
lea eax, [esp + 0x95]
push ebx
push eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebx
mov byte [esp + 0x9c], bl
call fcn.00401f80
add esp, 0xc
push edi
lea eax, [esp + 0x119d]
push ebx
push eax
mov byte [esp + 0x11a4], bl
call fcn.00401f80
add esp, 0xc
push edi
lea eax, [esp + 0x99d]
push ebx
push eax
mov byte [esp + 0x9a4], bl
call fcn.00401f80
add esp, 0xc
push 0x103
lea eax, [esp + 0x895]
push ebx
push eax
mov byte [esp + 0x89c], 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 + 0x18], ebx
mov dword [0x51c190], ebx
call fcn.00445b2f
test eax, eax
je 0x4b2536
mov dword [0x51b18c], ebx
xor eax, eax
jmp 0x4b2d27
cmp dword [esp + 0x10], ebx
je 0x4b2542
push dword [esp + 0x10]
jmp 0x4b256d
mov edx, dword [esp + 0x30]
call fcn.00445b2f
test eax, eax
jne 0x4b256c
push dword [esp + 0x30]
mov ecx, 0x800
lea eax, [esp + 0x99c]
call fcn.00444961
pop ecx
call fcn.00444748
jmp 0x4b257f
push esi
mov ecx, 0x800
lea eax, [esp + 0x99c]
call fcn.00444961
pop ecx
lea eax, [esp + 0x998]
push eax
push esi
call fcn.00401811
pop ecx
pop ecx
test eax, eax
jne 0x4b25b2
lea esi, [esp + 0x998]
call fcn.004468b6
mov eax, esi
push str._Unpacked
push eax
call fcn.00401bb0
mov esi, dword [esp + 0x1c]
pop ecx
pop ecx
push 0x159
push str.Archive.c
mov edx, 0x4cc77c
mov ecx, esi
call fcn.004a0001
mov edi, eax
pop ecx
pop ecx
mov dword [esp + 0x10], edi
cmp edi, ebx
jne 0x4b25e0
mov edi, esi
call fcn.004a142a
jmp 0x4b2529
mov esi, dword [esp + 0x14]
push str..exe
call fcn.0044675d
push eax
call fcn.00401811
pop ecx
pop ecx
test eax, eax
jne 0x4b2620
cmp dword [ebp + 0x1c], ebx
je 0x4b260a
push str._nLooking_for_self_extraction...
call fcn.004abf0e
pop ecx
mov ecx, esi
call fcn.004b198c
mov esi, eax
push ebx
push esi
push edi
call fcn.0040287c
add esp, 0xc
jmp 0x4b2622
xor esi, esi
push edi
push 1
lea eax, [esp + 0x4c]
push 4
push eax
call fcn.00402244
add esp, 0x10
cmp dword [ebp + 0x1c], ebx
je 0x4b2644
push str._nValidating_CheckSum...
call fcn.004abf0e
pop ecx
push edi
push 1
lea eax, [esp + 0x48]
push 4
push eax
call fcn.00402244
mov ecx, dword [esp + 0x54]
mov edx, edi
call fcn.004b0205
push ebx
add esi, 0x10
push esi
push edi
mov dword [esp + 0x40], eax
call fcn.0040287c
add esp, 0x1c
mov esi, str.222PAULAARCHIVE222JesusIAdoreYou
push edi
call fcn.00401e7e
pop ecx
movsx ecx, byte [esi]
cmp eax, ecx
jne 0x4b26b8
inc esi
cmp byte [esi], bl
jne 0x4b2675
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x40]
je 0x4b26df
cmp dword [ebp + 0x1c], ebx
je 0x4b26a2
push str._nERROR:_CheckSum_failed._The_given_archive_is_corrupt_
call fcn.004abf0e
pop ecx
mov ecx, edi
call fcn.004a2aec
mov dword [0x51c190], 1
jmp 0x4b2529
mov ecx, edi
call fcn.004a2aec
cmp dword [ebp + 0x1c], ebx
je 0x4b26cf
push str._nERROR:_The_given_archive_is_invalid_or_corrupt_
call fcn.004abf0e
pop ecx
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.004a1b95
jmp 0x4b2529
mov dword [esp + 0x14], ebx
push dword [esp + 0x10]
lea eax, [esp + 0x20]
push 1
push 4
push eax
mov dword [esp + 0x2c], ebx
call fcn.00402244
add esp, 0x10
cmp eax, 1
jae 0x4b272c
push dword [esp + 0x10]
call fcn.004019d8
pop ecx
test eax, eax
jne 0x4b2c35
cmp dword [ebp + 0x1c], ebx
je 0x4b272c
push 0x1ad
mov edi, str._n________ERROR__d________
push edi
call fcn.004abf0e
pop ecx
pop ecx
jmp 0x4b2731
mov edi, str._n________ERROR__d________
cmp dword [esp + 0x1c], ebx
jl 0x4b2c51
push 0x800
lea eax, [esp + 0x94]
push ebx
push eax
call fcn.00401f80
add esp, 0xc
xor esi, esi
push dword [esp + 0x10]
call fcn.00401e7e
pop ecx
mov byte [esp + esi + 0x90], al
cmp eax, ebx
je 0x4b2771
inc esi
cmp esi, 0x800
jb 0x4b2753
cmp esi, 0x800
jae 0x4b2c62
push 8
lea eax, [esp + 0x3c]
push ebx
push eax
call fcn.00401f80
add esp, 0xc
push dword [esp + 0x10]
lea eax, [esp + 0x3c]
push 1
push 8
push eax
call fcn.00402244
add esp, 0x10
cmp eax, 1
jb 0x4b2c75
cmp dword [esp + 0x1c], ebx
jne 0x4b27ca
lea edx, [esp + 0x90]
call fcn.00445b2f
test eax, eax
je 0x4b27ca
inc dword [esp + 0x34]
jmp 0x4b26e3
mov edx, dword [esp + 0x30]
call fcn.00445b2f
test eax, eax
jne 0x4b27f0
lea eax, [esp + 0x90]
call fcn.00444748
mov ecx, dword [esp + 0x30]
mov ebx, eax
call fcn.00446c67
xor ebx, ebx
cmp dword [ebp + 0x1c], ebx
je 0x4b289c
cmp dword [ebp + 0x1c], 0xde
jne 0x4b2888
push 0x36
lea eax, [esp + 0x5d]
push ebx
push eax
mov byte [esp + 0x64], bl
call fcn.00401f80
add esp, 0xc
push 0x7ff
lea eax, [esp + 0x199d]
push ebx
push eax
mov byte [esp + 0x19a4], bl
call fcn.00401f80
lea eax, [esp + 0x9c]
add esp, 0xc
push eax
mov edi, 0x800
mov ecx, edi
lea eax, [esp + 0x199c]
call fcn.00444961
pop ecx
mov esi, eax
call fcn.00444789
call fcn.004468b6
push ebx
push str..dat
push str..wav
mov eax, esi
push edi
push eax
call fcn.00446460
add esp, 0x14
mov eax, esi
push eax
push 0x37
pop ecx
lea eax, [esp + 0x5c]
call fcn.00444961
pop ecx
jmp 0x4b288f
lea eax, [esp + 0x90]
push eax
push str._nExpanding:___s_
call fcn.004abf0e
pop ecx
pop ecx
lea edx, [esp + 0x998]
lea ecx, [esp + 0x90]
call fcn.00446954
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x119c]
push eax
call fcn.00401ba0
lea eax, [esp + 0x11a0]
call fcn.00444748
push eax
call fcn.0049f690
add esp, 0xc
test eax, eax
jne 0x4b2909
push ebx
lea ecx, [esp + 0x119c]
call fcn.004a1173
pop ecx
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x1198]
push eax
call fcn.0049f690
pop ecx
test eax, eax
je 0x4b2c81
cmp dword [ebp + 0x18], ebx
jne 0x4b2981
lea edi, [esp + 0x90]
call fcn.004a142a
test eax, eax
je 0x4b2981
push ebx
lea eax, [esp + 0x54]
push eax
push ebx
mov eax, edi
push ebx
push eax
call fcn.004a1a8e
add esp, 0x14
test eax, eax
jne 0x4b2939
inc dword [esp + 0x18]
push 0xea60
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0049f38e
add esp, 0xc
test eax, eax
jns 0x4b2981
push 1
push dword [esp + 0x20]
push dword [esp + 0x18]
call fcn.0040287c
add esp, 0xc
test eax, eax
je 0x4b26e3
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x21a
jmp 0x4b2cd3
call fcn.0041df75
mov dword [esp + 0x24], eax
xor edi, edi
push 0x22a
push str.Archive.c
mov edx, 0x4cc8b8
lea ecx, [esp + 0x98]
call fcn.004a0001
pop ecx
pop ecx
mov dword [esp + 0x28], eax
cmp eax, ebx
jne 0x4b2a91
call fcn.0041df75
sub eax, dword [esp + 0x24]
cmp eax, 0x1194
ja 0x4b29fc
cmp dword [0x51b18c], ebx
jne 0x4b29fc
lea esi, [esp + 0x90]
call fcn.00445630
mov eax, esi
push eax
call fcn.00401a80
pop ecx
mov ecx, esi
cmp byte [eax + ecx - 1], 0x5c
je 0x4b29fc
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 0xf
jl 0x4b298c
cmp dword [ebp + 0x1c], ebx
je 0x4b2a4e
lea eax, [esp + 0x90]
push eax
call fcn.00401a80
pop ecx
lea ecx, [esp + 0x90]
cmp byte [eax + ecx - 1], 0x5c
je 0x4b2a4e
push dword [esp + 0x10]
call fcn.0040278d
pop ecx
push eax
push 0x23e
push str._n________ERROR__d__d________
call fcn.004abf0e
add esp, 0xc
lea eax, [esp + 0x90]
push eax
push str._n___Could_not_open_destination___s__for_writing_
call fcn.004abf0e
pop ecx
pop ecx
cmp dword [0x51b18c], ebx
jne 0x4b2a5a
inc dword [esp + 0x18]
cmp dword [esp + 0x1c], ebx
jle 0x4b26e3
push 1
push dword [esp + 0x20]
push dword [esp + 0x18]
call fcn.0040287c
add esp, 0xc
test eax, eax
je 0x4b26e3
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x248
jmp 0x4b2cd3
mov edi, dword [esp + 0x2c]
inc dword [esp + 0x14]
cmp edi, ebx
jne 0x4b2ab9
push 1
push 0xc366
call fcn.00401a3a
pop ecx
pop ecx
mov dword [esp + 0x2c], eax
cmp eax, ebx
je 0x4b2c95
mov edi, eax
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x1c], ebx
jle 0x4b2bae
push dword [esp + 0x10]
lea eax, [esp + 0x24]
push 1
push 2
push eax
call fcn.00402244
add esp, 0x10
cmp eax, 1
jb 0x4b2ca1
cmp word [esp + 0x20], bx
je 0x4b2cc9
movzx eax, word [esp + 0x20]
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fcomp qword [0x5058a0]
fnstsw ax
test ah, 0x41
je 0x4b2cc9
movzx esi, word [esp + 0x20]
push dword [esp + 0x10]
push esi
push 1
push edi
call fcn.00402244
add esp, 0x10
cmp eax, esi
jb 0x4b2cad
push dword [esp + 0x48]
add esi, edi
push esi
push dword [esp + 0x28]
mov eax, edi
call fcn.004b0516
movzx eax, ax
add esp, 0xc
cmp ax, bx
je 0x4b2cb9
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 0x4b2b83
cmp dword [ebp + 0x1c], ebx
je 0x4b2b7f
push 0x29d
push str._n________ERROR__d________
call fcn.004abf0e
pop ecx
pop ecx
inc dword [esp + 0x18]
cmp dword [ebp + 0x1c], ebx
je 0x4b2b93
push 0x4cc910
call fcn.004abf0e
pop ecx
movzx eax, word [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax + 2]
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x1c]
jl 0x4b2ac7
mov ecx, dword [esp + 0x28]
call fcn.004a2aec
push ebx
push connect
push 3
push ebx
push 7
push pe_nt_image_headers32
lea eax, [esp + 0xa8]
push eax
mov dword [esp + 0x44], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4b2bff
cmp dword [ebp + 0x1c], ebx
je 0x4b2bf6
push 0x2c2
push str._n________ERROR__d________
call fcn.004abf0e
pop ecx
pop ecx
inc dword [esp + 0x18]
jmp 0x4b26e3
lea eax, [esp + 0x38]
push eax
push eax
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x4b2c2b
cmp dword [ebp + 0x1c], ebx
je 0x4b2c27
push 0x2c9
push str._n________ERROR__d________
call fcn.004abf0e
pop ecx
pop ecx
inc dword [esp + 0x18]
call fcn.0049ff62
jmp 0x4b26e3
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], ebx
je 0x4b2ce1
push str._nDone_
call fcn.004abf0e
pop ecx
jmp 0x4b2ce1
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x1b4
push edi
jmp 0x4b2cd8
mov byte [esp + 0x10e], bl
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x1ca
jmp 0x4b2c5f
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x1d3
jmp 0x4b2c5f
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
lea eax, [esp + 0x1198]
push eax
push str._nERROR:_Could_not_create_directory___s_
jmp 0x4b2cd8
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x25f
jmp 0x4b2cd3
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x26b
jmp 0x4b2cd3
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x27d
jmp 0x4b2cd3
xor esi, esi
cmp dword [esp + 0x48], ebx
je 0x4b2ce1
inc esi
or dword [esp + 0x14], 0xffffffff
jmp 0x4b2ce1
cmp dword [ebp + 0x1c], ebx
je 0x4b2cdf
push 0x274
push str._n________ERROR__d________
call fcn.004abf0e
pop ecx
pop ecx
xor esi, esi
mov ecx, dword [esp + 0x10]
call fcn.004a2aec
mov ecx, dword [esp + 0x28]
cmp ecx, ebx
je 0x4b2cf7
call fcn.004a2aec
cmp dword [esp + 0x2c], ebx
je 0x4b2d07
push dword [esp + 0x2c]
call fcn.00401a00
pop ecx
mov dword [0x51b18c], ebx
cmp dword [esp + 0x34], ebx
jle 0x4b2d1d
cmp dword [esp + 0x14], ebx
jle 0x4b2d1d
mov dword [esp + 0x14], ebx
mov eax, esi
neg eax
sbb eax, eax
and eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x219c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00401317
mov esp, ebp
pop ebp
ret