Function at 0x1002775d
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x24]
push ebx
push ebp
push esi
mov esi, 1
mov ebp, ecx
cmp eax, esi
push edi
mov dword [esp + 0x1c], ebp
jl 0x1002798c
test esi, esi
mov dword [esp + 0x14], 0
jle 0x1002797f
xor edi, edi
lea ebx, [ebp + 0x102e4]
mov eax, dword [esp + 0x14]
xor ecx, ecx
add eax, edi
cdq
idiv esi
shl edx, 4
lea eax, [edx + ebp + 0x10311]
mov dl, byte [ebx + ecx]
mov byte [eax + ecx], dl
inc ecx
cmp ecx, esi
jle 0x100277a8
inc edi
inc ebx
cmp edi, esi
jl 0x10027793
push esi
mov ecx, ebp
call fcn.100279ad
test eax, eax
jne 0x100277d7
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
mov dword [esp + 0x14], eax
jl 0x1002778b
jmp 0x1002797f
mov eax, dword [esp + 0x28]
mov byte [esp + 0x18], 0
test eax, eax
mov dword [esp + 0x14], 0
jle 0x1002787e
xor bl, bl
xor ecx, ecx
mov byte [esp + 0x13], bl
xor edi, edi
mov al, byte [ecx + ebp + 0x104f1]
test al, al
je 0x1002782c
and eax, 0xff
xor edx, edx
mov ebx, 0xff
mov dl, byte [eax + 0x1001cdf4]
mov eax, edx
add eax, edi
cdq
idiv ebx
mov bl, byte [esp + 0x13]
xor bl, byte [edx + 0x1001ccf4]
mov byte [esp + 0x13], bl
mov edx, dword [esp + 0x14]
inc ecx
add edi, edx
cmp ecx, esi
jl 0x100277fa
mov eax, ecx
mov ecx, 0xff
imul eax, edx
cdq
idiv ecx
mov dl, byte [edx + 0x1001ccf4]
xor dl, bl
jne 0x10027869
mov eax, dword [esp + 0x18]
and eax, ecx
mov cl, byte [esp + 0x14]
mov byte [eax + ebp + 0x10302], cl
mov al, byte [esp + 0x18]
inc al
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x100277f0
mov edx, dword [esp + 0x18]
and edx, 0xff
cmp esi, edx
jne 0x1002797f
mov dword [esp + 0x14], 0
xor edi, edi
mov eax, dword [esp + 0x14]
xor ecx, ecx
add eax, edi
cdq
idiv esi
shl edx, 4
mov dword [esp + 0x20], edx
lea ebx, [edx + ebp + 0x10311]
jmp 0x100278b9
mov ebp, dword [esp + 0x1c]
xor eax, eax
mov al, byte [ecx + ebp + 0x10302]
mov ebp, 0xff
imul eax, edi
cdq
idiv ebp
inc ecx
inc ebx
cmp ecx, esi
mov dl, byte [edx + 0x1001ccf4]
mov byte [ebx - 1], dl
jl 0x100278b5
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add eax, esi
mov cl, byte [edi + ebp + 0x102e4]
inc edi
cmp edi, esi
mov byte [eax + ebp + 0x10311], cl
jl 0x1002789a
push esi
mov ecx, ebp
call fcn.100279ad
test eax, eax
jne 0x10027914
mov eax, dword [esp + 0x14]
inc eax
cmp eax, esi
mov dword [esp + 0x14], eax
jl 0x10027898
jmp 0x1002797f
mov ebx, dword [esp + 0x30]
mov edi, 0xfffefcfe
lea eax, [ebp + 0x10302]
sub edi, ebp
mov ecx, dword [esp + 0x28]
xor edx, edx
mov dl, byte [eax]
sub ecx, edx
mov dl, byte [eax + 0x1ef]
xor byte [ecx + ebx - 1], dl
lea ecx, [ecx + ebx - 1]
inc eax
lea ecx, [edi + eax]
cmp ecx, esi
jl 0x10027925
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ebx
push edx
push eax
mov ecx, ebp
call fcn.1002757d
test eax, eax
jne 0x10027998
lea eax, [ebp + 0x10302]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [eax]
sub edx, ecx
lea ecx, [edx + ebx - 1]
mov dl, byte [eax + 0x1ef]
xor byte [ecx], dl
inc eax
lea ecx, [eax + edi]
cmp ecx, esi
jl 0x10027961
mov eax, dword [esp + 0x34]
inc esi
cmp esi, eax
jle 0x1002777b
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0x10
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret 0x10