Function at 0x414fc4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf8
mov esi, esp
mov edx, dword [ebp + 0xc]
push eax
push eax
mov dword [esi + 0x88], esp
sub esp, 0x10
mov dword [esi + 0x80], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x18], eax
mov esp, eax
push eax
mov dword [esi + 0x84], esp
push eax
mov eax, esp
push eax
mov ecx, esp
sub esp, 0x20
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0xa4], edi
mov esp, edi
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x98], esp
push eax
mov dword [esi + 0x74], esp
push eax
mov dword [esi + 0x94], esp
push eax
mov dword [esi + 0x90], esp
sub esp, 0xc
mov dword [esi + 0xa8], esp
sub esp, 0xc
mov dword [esi + 0xa0], esp
sub esp, 0x18
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x1c], edi
mov esp, edi
mov edi, 0xfffffffe
cmp word [edx + edi + 2], 0
lea edi, [edi + 2]
jne 0x415040
mov dword [esi + 0x70], ecx
mov dword [esi + 0x8c], eax
sar edi, 1
lea eax, [esi + 0x58]
push eax
push 0
push 0
push edi
push edx
push 0
call dword [0x446088]
mov ebx, dword [esi + 0x58]
test ebx, ebx
jns 0x415076
mov eax, 0xffffffff
jmp 0x415079
lea eax, [ebx + ebx]
push eax
call fcn.00408cd0
add esp, 4
lea ecx, [esi + 0x58]
push ecx
push ebx
mov ebx, eax
push eax
push edi
push dword [ebp + 0xc]
push 0
call dword [0x446088]
mov dword [esi + 0x28], 0x63ae619c
mov dword [esi + 0x2c], 0x67f56585
mov dword [esi + 0x30], 0x6b4a69fc
mov dword [esi + 0x34], 0x6f8b6d9a
mov dword [esi + 0x38], 0x13811182
mov dword [esi + 0x3c], 0x17f915fd
mov dword [esi + 0x40], 0x1b1a19f6
lea eax, [esi + 0x44]
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4b], 0
mov dword [esi + 0xd4], 0
mov ecx, dword [esi + 0xd4]
cmp ecx, 0x26
ja 0x41514d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xd4]
mov edx, dword [esi + 0xd4]
movzx edx, byte [esi + edx + 0x28]
lea edi, [ecx - 0x2d92a950]
add ecx, 0xb0
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0xac], edi
mov ecx, dword [esi + 0xac]
add cl, 0x30
mov edx, dword [esi + 0xd4]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0xd4]
mov ecx, dword [esi + 0xd4]
cmp ecx, 0x27
jb 0x415100
lea edi, [esi + 0xd4]
lea edx, [esi + 0x28]
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0xf0]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x58]
mov ecx, 1
sub ecx, eax
and ecx, 1
and eax, 0xfffffffe
sub eax, ecx
mov ecx, eax
add ecx, 0xe
jns 0x41518e
mov eax, 0xffffffff
jmp 0x415193
add eax, eax
add eax, 0x1c
push eax
call fcn.00408cd0
add esp, 4
movzx ecx, word [ebx]
mov edi, eax
test cx, cx
je 0x4151c1
lea edx, [ebx + 2]
mov edi, eax
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4151b0
mov word [edi], 0
movzx ecx, word [esi + 0xd4]
test cx, cx
je 0x4151f1
lea edx, [esi + 0xd6]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4151e0
mov word [edi], 0
mov ecx, esi
push 0x60
push 3
push 0x120089
push ecx
mov dword [esi + 0x10], eax
push eax
call fcn.004391f0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4409ac]