Function at 0x10004eb1
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4160aa
call fcn.100163dc
sub esp, 0xf8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x24], ebx
xor eax, eax
push 6
mov dword [ebp - 0x18], ebx
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
push ebx
push 0x421074
lea esi, [ebp - 0x104]
stosw word es:[edi], ax
call fcn.100061db
cmp dword [eax + 0x14], 0x10
jb 0x10004eef
mov eax, dword [eax]
push 0x10
push ebx
push eax
call fcn.1000cf9d
mov ebx, dword [ebp - 0x18]
xor eax, ebx
add esp, 0xc
and eax, 0xffffff
push 1
xor edi, edi
lea esi, [ebp - 0x104]
xor ebx, eax
call fcn.10007641
mov eax, dword [0x422370]
mov eax, dword [eax + 0x103f]
mov edi, dword [ebp - 0x14]
xor eax, edi
and eax, 0x3fff
xor edi, eax
call dword [0x417158]
movzx eax, ax
shl eax, 0xe
xor eax, edi
and eax, 0x7fc000
xor edi, eax
mov eax, dword [0x422370]
mov eax, dword [eax]
shl eax, 0x18
and ebx, 0xffffff
or ebx, eax
push 0x98
xor esi, esi
lea eax, [ebp - 0xe4]
push esi
push eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xe8], 0x9c
call fcn.1000dd10
add esp, 0xc
lea eax, [ebp - 0xe8]
push eax
call dword [0x41715c]
test eax, eax
jne 0x10004fa7
call dword [0x417174]
mov dword [ebp - 0x1c], eax
push 0x41d14c
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], 0x41a8c8
call fcn.1000d734
push 0x59
call dword [0x4172a4]
cmp dword [ebp - 0xe4], 5
push 2
pop ebx
jne 0x10004ff9
cmp dword [ebp - 0xe0], esi
jne 0x10004fcb
xor eax, eax
inc eax
jmp 0x10005073
cmp dword [ebp - 0xe0], 1
je 0x10004fe6
cmp dword [ebp - 0xe0], ebx
jne 0x10005071
cmp byte [ebp - 0x4e], 1
jne 0x10004fed
mov eax, ebx
jmp 0x10005073
xor ecx, ecx
cmp eax, esi
setne cl
lea eax, [ecx + 3]
jmp 0x10005073
cmp dword [ebp - 0xe4], 6
jne 0x10005052
mov eax, dword [ebp - 0xe0]
cmp eax, esi
jne 0x1000501a
xor eax, eax
cmp byte [ebp - 0x4e], 1
setne al
add eax, 5
jmp 0x10005073
cmp eax, 1
jne 0x1000502d
xor eax, eax
cmp byte [ebp - 0x4e], 1
setne al
add eax, 7
jmp 0x10005073
cmp eax, ebx
jne 0x1000503f
xor eax, eax
cmp byte [ebp - 0x4e], 1
setne al
add eax, 9
jmp 0x10005073
cmp eax, 3
jne 0x10005071
xor eax, eax
cmp byte [ebp - 0x4e], 1
setne al
add eax, 0xb
jmp 0x10005073
cmp dword [ebp - 0xe4], 0xa
jne 0x10005071
cmp dword [ebp - 0xe0], esi
jne 0x10005071
xor eax, eax
cmp byte [ebp - 0x4e], 1
setne al
add eax, 0xd
jmp 0x10005073
xor eax, eax
mov esi, dword [ebp - 0x54]
and esi, 7
shl esi, 5
and eax, 0x1f
or esi, eax
shl esi, 0x17
and edi, 0x807fffff
or esi, edi
call fcn.10007dd5
shl eax, 0x1f
and esi, 0x7fffffff
or eax, esi
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x24]
push eax
push 1
push 0
call dword [0x417260]
test eax, eax
jne 0x10005114
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx]
cmp eax, 1
je 0x100050fd
cmp eax, ebx
je 0x100050f0
jle 0x100050e5
cmp eax, 4
jle 0x100050d8
cmp eax, 5
jne 0x100050e5
mov eax, dword [ebp - 0x10]
and eax, 0xfffd
or eax, 5
jmp 0x10005107
mov eax, dword [ebp - 0x10]
and eax, 0xfffb
or eax, 3
jmp 0x10005107
mov eax, 0xfff8
and word [ebp - 0x10], ax
jmp 0x1000510b
mov eax, dword [ebp - 0x10]
and eax, 0xfff9
or eax, 1
jmp 0x10005107
mov eax, dword [ebp - 0x10]
and eax, 0xfffa
or eax, ebx
mov word [ebp - 0x10], ax
push ecx
call dword [0x41725c]
jmp 0x1000511d
mov eax, 0xfff8
and word [ebp - 0x10], ax
mov ecx, 0x50b
xor eax, eax
movzx edx, byte [ebp + eax - 0x18]
add dx, cx
mov ecx, 0x1e0b
imul dx, cx
inc eax
movzx ecx, dx
cmp eax, 0xa
jb 0x10005124
mov eax, ecx
and eax, 0x80001fff
jns 0x1000514e
dec eax
or eax, 0xffffe000
inc eax
mov ecx, dword [ebp - 0x10]
shl eax, 3
and ecx, 7
or eax, ecx
mov word [ebp - 0x10], ax
mov di, word [ebp - 0x18]
push 8
movzx ecx, di
xor esi, esi
pop edx
mov al, cl
imul ecx, ecx, 0x1f0d
mov bl, 0x51
imul bl
xor al, byte [ebp + esi - 0x16]
inc esi
dec edx
mov byte [ebp + esi - 0x4b], al
movzx ecx, cx
jne 0x10005169
xor ebx, ebx
and dword [ebp - 0x30], ebx
mov word [ebp - 0x4c], di
mov dword [ebp - 0x1c], ebx
xor edi, edi
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], bl
and dword [ebp - 4], edi
cmp ebx, 0xa
jb 0x100051aa
xor ecx, ecx
cmp edi, ecx
jbe 0x100051e9
cmp edi, 5
jae 0x100051c8
movzx eax, byte [ebp + ebx - 0x4c]
mov ecx, dword [ebp - 0x1c]
shl ecx, 8
or eax, ecx
add edi, 8
inc ebx
mov dword [ebp - 0x1c], eax
cmp edi, 5
jb 0x1000519f
mov eax, dword [ebp - 0x1c]
sub edi, 5
mov ecx, edi
shr eax, cl
lea esi, [ebp - 0x40]
and eax, 0x1f
movzx eax, byte [eax + 0x41ab24]
push eax
push 1
call fcn.10006ea4
jmp 0x1000519f
cmp dword [ebp - 0x30], ecx
jbe 0x10005239
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x40]
push 0x10
pop edx
mov eax, edi
cmp esi, edx
jae 0x10005200
lea eax, [ebp - 0x40]
cmp byte [eax + ecx], 0x41
jl 0x10005215
mov eax, edi
cmp esi, edx
jae 0x1000520f
lea eax, [ebp - 0x40]
cmp byte [eax + ecx], 0x46
jle 0x10005233
mov eax, edi
cmp esi, edx
jae 0x1000521e
lea eax, [ebp - 0x40]
cmp byte [eax + ecx], 0x30
jl 0x10005259
mov eax, edi
cmp esi, edx
jae 0x1000522d
lea eax, [ebp - 0x40]
cmp byte [eax + ecx], 0x39
jg 0x10005259
inc ecx
cmp ecx, dword [ebp - 0x30]
jb 0x100051f4
mov eax, dword [ebp - 0x18]
inc eax
xor eax, dword [ebp - 0x18]
push 1
and eax, 0xffffff
xor dword [ebp - 0x18], eax
xor edi, edi
lea esi, [ebp - 0x40]
call fcn.10007641
jmp 0x1000515d
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x40]
push eax
call fcn.10007191
push 1
xor edi, edi
lea esi, [ebp - 0x40]
call fcn.10007641
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret