Function at 0x419228
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffba4
push ebx
push esi
push edi
mov dword [ebp - 0x40], edx
mov ebx, eax
mov eax, 0x42cfa4
call fcn.00424fbc
cmp dword [ebp - 0x40], 0
jne 0x41925a
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
mov eax, edx
jmp 0x419580
mov eax, 0xdb8
call fcn.0040a360
push eax
call fcn.00410f14
pop ecx
add esp, 0xfffffff8
or word [ebx + 0xc4c], 0x40
mov edx, dword [ebx + 0x257c]
mov eax, esp
add edx, 7
call fcn.00401f50
xor edx, edx
mov eax, ebx
call fcn.00402fe8
mov edx, 0x73
mov eax, ebx
call fcn.00412f54
add esp, 0xfffffff8
xor edx, edx
mov eax, esp
call fcn.00401f50
mov edx, 2
mov eax, ebx
call fcn.00402fe8
lea edx, [ebp - 0x48]
mov eax, ebx
call fcn.00403040
mov eax, dword [ebp - 0x48]
add esp, 0xfffffff8
mov dword [ebp - 0x50], eax
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x4c], esi
mov dword [esp], eax
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x40]
call fcn.00419588
mov dword [ebp - 0x40], eax
lea ecx, [ebx + 0x18d4]
mov byte [ebx + 0x18c2], 0x78
mov word [ebx + 0x18c4], 0xc000
mov word [ebx + 0x18c6], 0x1a
mov edi, dword [ebp - 0x40]
shl edi, 9
xor edx, edx
mov dword [ebx + 0x18c8], edi
mov byte [ebx + 0x18cc], 0x14
mov ax, word [ebp - 0x40]
mov word [ebx + 0x18ce], ax
mov dword [ebx + 0x18d0], edx
push 8
push str.Protect_
push ecx
call fcn.00424b60
add esp, 0xc
mov edx, 0x78
mov eax, ebx
call fcn.00412f54
add esp, 0xfffffff8
xor edx, edx
mov eax, esp
call fcn.00401f50
xor edx, edx
mov eax, ebx
call fcn.00402fe8
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0x54], ecx
mov edx, edi
mov word [ebp - 0x2c], 8
lea eax, [ebp - 0xc]
call fcn.00403418
inc dword [ebp - 0x20]
mov word [ebp - 0x2c], 0x14
push dword [ebp - 8]
push 0
push dword [ebp - 0xc]
call fcn.00424bd0
add esp, 0xc
jmp 0x4194e1
call fcn.00409258
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x48]
mov edx, pe_nt_image_headers32
mov dword [esp], ecx
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
add esp, 0xfffffff8
mov eax, esp
call fcn.00401f50
call fcn.004024b4
test al, al
je 0x4193eb
mov edi, dword [ebp - 0x48]
mov eax, pe_nt_image_headers32
sub eax, edi
lea edx, [ebp - 0x45c]
push eax
add edx, edi
push 0
push edx
call fcn.00424bd0
add esp, 0xc
lea eax, [ebp - 0x5c]
xor edx, edx
call fcn.00401f50
mov ecx, dword [eax]
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x44], ecx
jmp 0x419403
cmp dword [ebp - 0x48], 0x200
mov edi, pe_nt_image_headers32
jae 0x4193fc
dec dword [ebp - 0x44]
sub dword [ebp - 0x48], 0x200
lea edx, [ebp - 0x45c]
mov ecx, edi
mov eax, ebx
call fcn.00402eb4
mov edx, dword [ebp - 0x54]
shl edx, 9
add edx, dword [ebp - 0xc]
mov word [ebp - 0x2c], 0x14
xor eax, eax
mov cl, byte [ebp + eax - 0x45c]
xor byte [edx + eax], cl
inc eax
cmp eax, 0x200
jl 0x419423
lea edx, [ebp - 0x45c]
mov ecx, pe_nt_image_headers32
or eax, 0xffffffff
call fcn.004092e8
mov word [ebp - 0x2c], 0x14
mov byte [ebp + esi - 0x25c], al
inc esi
movzx eax, ax
sar eax, 8
mov byte [ebp + esi - 0x25c], al
inc esi
cmp esi, 0x200
jne 0x4194c4
mov word [ebp - 0x2c], 0x20
lea eax, [ebp - 0x18]
mov edx, ebx
call fcn.00402744
inc dword [ebp - 0x20]
add esp, 0xfffffff8
mov word [ebp - 0x2c], 0x2c
mov eax, esp
xor edx, edx
call fcn.00401f50
mov edx, 2
mov eax, ebx
call fcn.00402fe8
lea edx, [ebp - 0x25c]
mov ecx, esi
mov eax, ebx
call fcn.00402e48
xor esi, esi
dec dword [ebp - 0x20]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004027b8
mov word [ebp - 0x2c], 0x14
inc dword [ebx + 0x18d0]
add dword [ebx + 0x18c8], 2
inc dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
cmp ecx, dword [ebp - 0x40]
jb 0x4194e1
xor eax, eax
mov dword [ebp - 0x54], eax
add esp, 0xfffffff8
mov edx, dword [ebp - 0x48]
mov dword [esp], edx
mov ecx, dword [ebp - 0x44]
mov dword [esp + 4], ecx
add esp, 0xfffffff8
mov eax, esp
xor edx, edx
call fcn.00401f50
call fcn.0040248c
test al, al
jne 0x419389
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x50]
mov dword [esp], ecx
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], eax
xor edx, edx
mov eax, ebx
call fcn.00402fe8
mov edx, 0x78
mov eax, ebx
call fcn.00412f54
add esp, 0xfffffff8
xor edx, edx
mov eax, esp
call fcn.00401f50
mov edx, 2
mov eax, ebx
call fcn.00402fe8
lea edx, [ebp - 0x25c]
mov ecx, esi
mov eax, ebx
call fcn.00402e48
mov ecx, dword [ebp - 0x40]
shl ecx, 9
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.00402e48
dec dword [ebp - 0x20]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004013a0
mov ecx, dword [ebp - 0x3c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret