Function at 0x407070
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov edx, str.Image_Relocated
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov al, byte [edx]
test al, al
je 0x40709f
sub eax, 0x30
cmp al, 9
jbe 0x40709c
imul eax, dword [0x42954c], 0xe5f4310b
mov dword [0x42954c], eax
jmp 0x40709f
inc edx
jmp 0x40707e
imul eax, dword [0x42954c], 0x848879a4
cmp byte [str._appext_data], 0
mov dword [0x42954c], eax
je 0x4070c6
call fcn.00412174
and dword [0x42954c], 0x5710cb76
imul eax, dword [0x42954c], 0x82af43e9
or eax, 0xff18dcf3
mov dword [0x42954c], eax
mov dword [esp + 4], str.Handles_Closed
mov dword [esp], str.Specified_section_cannot_be_deleted.
call fcn.00410758
mov edi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call edi
mov dword [ebp - 0x24], 0x48
xor edx, edx
mov ecx, 0x64
imul eax, dword [0x42954c], 0x6957d635
mov dword [ebp - 0x20], 0x57
mov dword [ebp - 0x1c], 0xfffffefd
or eax, 0xc5cec787
xor eax, 0x9b6a5d36
xor eax, 0xd0ade057
add ecx, dword [ebp + edx*4 - 0x24]
inc edx
imul eax, eax, 0xab8e5d67
mov dword [ebp - 0x3c], ecx
xor eax, 0x8cbc154f
cmp edx, 3
jne 0x407126
mov dword [0x42954c], eax
xor ebx, ebx
mov esi, 0x53
mov dword [ebp - 0x2c], 0x32
mov dword [ebp - 0x28], 0xffffff7b
mov edx, str.Specified_section_cannot_be_deleted.
mov ecx, 0x93a
movzx eax, word [edx]
add edx, 2
test ax, ax
je 0x4071ad
add ecx, eax
cmp ecx, 0x1a29
jbe 0x407167
mov eax, dword [0x42954c]
mov dword [esp], str.Specified_section_cannot_be_deleted.
mov dword [esp + 4], eax
call fcn.00412770
imul eax, dword [0x42954c], 0xba59a33
mov dword [0x42954c], eax
call edi
imul eax, eax, 0x84053e02
mov dword [0x42954c], eax
mov eax, dword [0x42954c]
or eax, 0x1a0253d
sub eax, 0x1707ae3c
mov dword [0x42954c], eax
call fcn.0041479c
add esi, dword [ebp + ebx*4 - 0x2c]
mov dword [ebp - 0x40], esi
test ebx, ebx
jne 0x4071d8
mov ebx, 1
jmp 0x40715d
mov eax, dword [0x42954c]
xor eax, 0x844066bc
sub eax, 0x6bc0adb7
mov dword [0x42954c], eax
mov dword [esp], str.Specified_section_cannot_be_deleted.
call fcn.00414b84
xor eax, eax
cmp byte [eax + str._appext_data], 0
je 0x407222
inc eax
cmp eax, 0xe68
jne 0x4071fa
mov eax, dword [0x42954c]
mov dword [esp], eax
call fcn.004131b4
sub dword [0x42954c], 0x6e2c1b39
mov eax, dword [0x42954c]
xor eax, 0xbcbd5eb9
and eax, 0x358f7654
mov dword [0x42954c], eax
call fcn.00412d2c
mov eax, dword [0x42954c]
add eax, 0x649754ee
xor eax, 0xf41168db
mov dword [0x42954c], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x2e]
mov dword [esp + 4], eax
mov dword [esp], 0x23
call fcn.00401079
mov edi, dword [ebp - 0x40]
cmp eax, edi
jl 0x407295
cmp byte [ebp - 0x2e], 0
je 0x40728f
mov eax, dword [0x42954c]
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
push eax
jmp 0x4072e3
cmp byte [ebp - 0x2d], 0
je 0x4072e3
mov edx, str.Handles_Closed
mov ecx, 0x476
movzx eax, byte [edx]
inc edx
test al, al
je 0x4072bb
add ecx, eax
cmp ecx, 0x1d61
jbe 0x40729f
and dword [0x42954c], 0xf9d1ea21
mov eax, dword [0x42954c]
xor ebx, ebx
and eax, 0x5bb9d0b5
xor eax, 0xc2991ec8
mov dword [0x42954c], eax
mov dword [esp], eax
call fcn.004131b4
and dword [0x42954c], 0xba7b9138
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret