Function at 0x41e9c3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x1260
call fcn.00408480
mov esi, esp
push eax
sub esp, 0xe4
mov eax, esp
mov dword [esi + 0x6c], eax
mov dword [esi + 0x74], eax
sub esp, 0x100
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x68], eax
mov esp, eax
push eax
sub esp, 0xa0
mov eax, esp
mov dword [esi + 0x64], eax
mov dword [esi + 0x70], eax
sub esp, 0xc0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x60], eax
mov esp, eax
push eax
sub esp, 0xa0
mov dword [esi + 0x24], esp
sub esp, 0xc0
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
push eax
sub esp, 0xa0
mov dword [esi + 0x5c], esp
sub esp, 0xc0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x58], eax
mov esp, eax
push eax
sub esp, 0x10
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x80], esp
sub esp, 0x200
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x88], esp
sub esp, 0x30
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x2c], eax
mov esp, eax
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0x90], esp
sub esp, 0x800
mov dword [esi + 0x10], esp
push eax
mov dword [esi + 0x94], esp
push eax
mov dword [esi + 0x14], esp
sub esp, 0x400
mov dword [esi + 0x1c], esp
push eax
mov dword [esi + 0x20], esp
push eax
mov dword [esi + 0x3c], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x40], eax
mov esp, eax
push eax
sub esp, 0x1c
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 8], eax
mov esp, eax
push eax
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x4c], esp
sub esp, 0x40
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x50], eax
mov esp, eax
mov dword [esi + 0x250], 0xb340b15c
mov dword [esi + 0x254], 0xb771b571
mov dword [esi + 0x258], 0xab59a951
mov dword [esi + 0x25c], 0xaf5cad58
mov dword [esi + 0x260], 0xa34ea149
mov dword [esi + 0x264], 0xa755a551
mov dword [esi + 0x268], 0x5ba8599d
mov word [esi + 0x26c], 0x5d5c
mov dword [esi + 0x26e], 0
mov dword [esi + 0x272], 0
mov dword [esi + 0x276], 0
mov word [esi + 0x27a], 0
mov dword [esi + 0xa0], 0
mov eax, dword [esi + 0xa0]
cmp eax, 0x2b
ja 0x41ebaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0xa0]
movzx edx, byte [esi + ecx + 0x250]
lea ecx, [eax + edx]
add ecx, 0x8dff7668
add eax, 0x68
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov ecx, eax
or ecx, 0x27
and eax, 0x27
add eax, ecx
inc al
mov ecx, dword [esi + 0xa0]
mov byte [esi + ecx + 0x250], al
inc dword [esi + 0xa0]
mov eax, dword [esi + 0xa0]
cmp eax, 0x2c
jb 0x41eb50
lea eax, [esi + 0x44]
lea ecx, [esi + 0x250]
push 0
push 0
push 0x20019
push eax
mov ebx, ecx
push ecx
call fcn.0043c450
add esp, 0x14
shr eax, 0x1f
mov eax, dword [eax*4 + 0x444c10]
mov ecx, 0xcbc6253b
xor ecx, dword [0x444c18]
add eax, ecx
inc eax
jmp eax
mov edx, dword [esi + 0x10]
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x422020
mov dword [esi + 0x24], edx
mov ebx, dword [esi + 0x14]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.0040f1a0
add esp, 4
mov byte [esi + 0x10], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.0040f1a0
add esp, 4
movzx ecx, byte [esi + 0x10]
shl cl, 2
loope 0x421f7e
loope 0x421f7e
mov edx, eax
shr dl, 4
and dl, 3
or dl, cl
mov ecx, dword [esi + 0x18]
mov ebx, dword [esi + 0x24]
mov byte [ecx + ebx], dl
lea edx, [ebx + 1]
mov ecx, dword [esi + 0x1c]
cmp edi, ecx
jae 0x421f40
mov byte [esi + 0x10], al
mov eax, dword [esi + 0x14]
movzx eax, byte [eax + edi]
push eax
mov ebx, edx
call fcn.0040f1a0
mov edx, ebx
mov ecx, dword [esi + 0x1c]
add esp, 4
cmp al, 0x40
je 0x421f40
movzx edx, byte [esi + 0x10]
shl dl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, dl
mov ebx, dword [esi + 0x24]
lea edx, [ebx + 2]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x18]
mov byte [edx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, ecx
jae 0x421f3a
mov eax, dword [esi + 0x14]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.0040f1a0
mov ecx, dword [esi + 0x1c]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 0x10]
je 0x421f40
shl bl, 6
add al, bl
mov edx, dword [esi + 0x18]
mov ebx, dword [esi + 0x24]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x421f40
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x18]
mov byte [ecx + eax], 0
push ecx
call fcn.004016f0
add esp, 4
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
push eax
call fcn.00402000
add esp, 4
mov ecx, dword [esi + 0x3c]
mov dword [ecx], eax
mov ebx, dword [esi + 0x54]
mov ecx, ebx
mov edi, dword [esi + 0x14]
sub ecx, edi
lea eax, [ecx - 0x2b37a8b0]
lea edx, [eax + eax*2]
add edx, 0x81a6fa10
shr edx, 2
movzx ecx, byte [ecx + edi - 1]
cmp ecx, 0x3d
je 0x422071
cmp ecx, 0x2e
jne 0x422072
dec edx
movzx eax, byte [eax + edi + 0x2b37a8ae]
cmp eax, 0x3d
je 0x422084
cmp eax, 0x2e
jne 0x422085
dec edx
mov dword [esi + 0x40], edx
lea eax, [edx + 1]
push eax
call fcn.00436b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x18], ecx
mov dword [eax], ecx
mov edx, ebx
sub edx, edi
je 0x4221a0
xor ecx, ecx
mov edi, 2
mov dword [esi + 0x1c], edx
jmp 0x4220d0
mov ecx, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, edx
mov edi, eax
jae 0x4221a0
mov dword [esi + 0x24], ecx
mov ebx, dword [esi + 0x14]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.0040f1a0
add esp, 4
mov byte [esi + 0x10], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.0040f1a0
mov edx, dword [esi + 0x1c]
add esp, 4
movzx ecx, byte [esi + 0x10]
shl cl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, cl
mov ecx, dword [esi + 0x18]
mov ebx, dword [esi + 0x24]
mov byte [ecx + ebx], ah
lea ecx, [ebx + 1]
cmp edi, edx
jae 0x4220c0
mov byte [esi + 0x10], al
mov eax, dword [esi + 0x14]
movzx eax, byte [eax + edi]
push eax
mov ebx, ecx
call fcn.0040f1a0
mov ecx, ebx
mov edx, dword [esi + 0x1c]
add esp, 4
cmp al, 0x40
je 0x4220c0
movzx ecx, byte [esi + 0x10]
shl cl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, cl
mov ebx, dword [esi + 0x24]
lea ecx, [ebx + 2]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x18]
mov byte [ecx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, edx
jae 0x4220b4
mov eax, dword [esi + 0x14]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.0040f1a0
mov edx, dword [esi + 0x1c]
add esp, 4
cmp al, 0x40
mov ecx, dword [esi + 0x10]
je 0x4220c0
shl bl, 6
add al, bl
mov ecx, dword [esi + 0x18]
mov ebx, dword [esi + 0x24]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov ecx, ebx
jmp 0x4220c0
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x18]
mov byte [ecx + eax], 0
push ecx
call fcn.004016f0
add esp, 4
mov edi, dword [esi + 0x2c]
mov dword [edi], eax
push eax
call fcn.00402000
add esp, 4
mov ecx, dword [esi + 0x3c]
mov dword [ecx], eax
mov ecx, dword [0x4457ec]
mov edx, 0x88f617ca
xor edx, dword [0x4457f0]
add ecx, edx
inc ecx
jmp ecx