Function at 0x5e384b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x308
mov eax, dword [0xee37e4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor edx, edx
xor eax, eax
push esi
inc edx
push edi
mov ebx, edx
mov edi, 0x11b
mov byte [ebp + eax - 0x304], bl
mov byte [ebp + eax - 0x205], bl
mov byte [ebp + ebx - 0x104], al
inc eax
mov dword [ebp - 0x308], eax
mov eax, ebx
and al, 0x80
movzx ecx, al
lea eax, [ebx + ebx]
neg ecx
sbb ecx, ecx
and ecx, edi
xor ecx, eax
mov eax, dword [ebp - 0x308]
xor ebx, ecx
cmp ebx, edx
jne 0x5e386d
xor esi, esi
mov eax, edx
mov byte [esi + 0xf0cb50], dl
and al, 0x80
movzx ecx, al
neg ecx
sbb ecx, ecx
add edx, edx
and ecx, edi
xor edx, ecx
inc esi
cmp esi, 0x1e
jb 0x5e38a9
xor edx, edx
test dl, dl
je 0x5e38e4
movzx esi, dl
lea ecx, [ebp - 0x205]
movzx eax, byte [ebp + esi - 0x104]
sub ecx, eax
movzx ebx, byte [ecx]
jmp 0x5e38e8
xor ebx, ebx
xor esi, esi
lea eax, [ebx + ebx]
xor eax, ebx
add eax, eax
xor eax, ebx
add eax, eax
xor eax, ebx
add eax, eax
xor ebx, eax
mov ecx, ebx
shr ecx, 8
xor cl, bl
xor cl, 0x63
mov byte [edx + 0xf0b550], cl
mov byte [edx*4 + 0xf0b651], cl
mov byte [edx*4 + 0xf0b650], cl
mov byte [edx*4 + 0xf0d373], cl
mov byte [edx*4 + 0xf0d370], cl
mov byte [edx*4 + 0xf0c253], cl
mov byte [edx*4 + 0xf0c252], cl
mov byte [edx*4 + 0xf0d772], cl
mov byte [edx*4 + 0xf0d771], cl
je 0x5e3957
movzx edi, cl
movzx eax, byte [ebp + edi - 0x104]
mov al, byte [ebp + eax - 0x2eb]
jmp 0x5e395b
xor edi, edi
xor al, al
mov byte [edx*4 + 0xf0b653], al
mov byte [edx*4 + 0xf0d372], al
mov byte [edx*4 + 0xf0c251], al
mov byte [edx*4 + 0xf0d770], al
test cl, cl
je 0x5e398c
movzx eax, byte [ebp + edi - 0x104]
mov al, byte [ebp + eax - 0x303]
jmp 0x5e398e
xor al, al
mov byte [edx*4 + 0xf0b652], al
mov byte [edx*4 + 0xf0d371], al
mov byte [edx*4 + 0xf0c250], al
mov byte [edx*4 + 0xf0d773], al
mov eax, esi
shl eax, 3
xor eax, esi
shl eax, 2
xor eax, esi
lea ebx, [eax + eax]
mov ecx, ebx
shr ecx, 8
mov al, cl
xor al, bl
cmp al, 5
je 0x5e39e2
movzx eax, bl
xor eax, 5
xor eax, ecx
lea ecx, [ebp - 0x205]
movzx eax, byte [ebp + eax - 0x104]
sub ecx, eax
mov bl, byte [ecx]
jmp 0x5e39e4
xor bl, bl
mov byte [edx + 0xf0ca50], bl
test bl, bl
je 0x5e3a02
movzx ecx, bl
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x29c]
jmp 0x5e3a06
xor ecx, ecx
xor al, al
mov byte [edx*4 + 0xf0c652], al
mov byte [edx*4 + 0xf0cb71], al
mov byte [edx*4 + 0xf0db70], al
mov byte [edx*4 + 0xf0ba53], al
mov byte [ecx*4 + 0xf0b152], al
mov byte [ecx*4 + 0xf0cf71], al
mov byte [ecx*4 + 0xf0be50], al
mov byte [ecx*4 + 0xf0ad53], al
test bl, bl
je 0x5e3a53
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x23d]
jmp 0x5e3a55
xor al, al
mov byte [edx*4 + 0xf0c650], al
mov byte [edx*4 + 0xf0cb73], al
mov byte [edx*4 + 0xf0db72], al
mov byte [edx*4 + 0xf0ba51], al
mov byte [ecx*4 + 0xf0b150], al
mov byte [ecx*4 + 0xf0cf73], al
mov byte [ecx*4 + 0xf0be52], al
mov byte [ecx*4 + 0xf0ad51], al
test bl, bl
je 0x5e3aa2
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x216]
jmp 0x5e3aa4
xor al, al
mov byte [edx*4 + 0xf0c651], al
mov byte [edx*4 + 0xf0cb70], al
mov byte [edx*4 + 0xf0db73], al
mov byte [edx*4 + 0xf0ba52], al
mov byte [ecx*4 + 0xf0b151], al
mov byte [ecx*4 + 0xf0cf70], al
mov byte [ecx*4 + 0xf0be53], al
mov byte [ecx*4 + 0xf0ad52], al
test bl, bl
je 0x5e3af1
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x225]
jmp 0x5e3af3
xor al, al
mov byte [edx*4 + 0xf0c653], al
mov byte [edx*4 + 0xf0cb72], al
mov byte [edx*4 + 0xf0db71], al
mov byte [edx*4 + 0xf0ba50], al
inc edx
mov byte [ecx*4 + 0xf0b153], al
mov byte [ecx*4 + 0xf0cf72], al
mov byte [ecx*4 + 0xf0be51], al
mov byte [ecx*4 + 0xf0ad50], al
cmp edx, 0x100
jl 0x5e38c8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006f3e28
leave
ret