Function at 0x10007e85
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x10027080]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push 0x40
mov esi, ecx
shr eax, 1
pop ecx
mov dword [ebp - 0x4c], eax
cmp eax, ecx
jle 0x10007eaa
mov dword [ebp - 0x4c], ecx
push ebx
push edi
push dword [ebp - 0x4c]
lea eax, [ebp - 0x44]
push esi
push eax
call fcn.10010a50
xor ebx, ebx
add esp, 0xc
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x50], ebx
cmp dword [ebp - 0x4c], ebx
jle 0x10007f1d
mov ecx, dword [ebp - 0x48]
mov cl, byte [ecx + 0x10028ab8]
lea eax, [ebp + ebx - 0x44]
xor byte [eax], cl
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 8
jge 0x10007f1d
and ebx, 0x80000007
mov dl, byte [eax]
jns 0x10007ef0
dec ebx
or ebx, 0xfffffff8
inc ebx
movzx edi, dl
mov ecx, ebx
shl edi, cl
test edi, edi
jne 0x10007f0d
mov cl, byte [ebp + 0xc]
sub cl, bl
add cl, 8
shr dl, cl
test dl, dl
jne 0x10007f0d
xor cl, cl
jmp 0x10007f0f
mov cl, 1
mov ebx, dword [ebp - 0x50]
inc ebx
mov byte [eax], cl
mov dword [ebp - 0x50], ebx
cmp ebx, dword [ebp - 0x4c]
jl 0x10007ec9
mov eax, dword [ebp + 0x10]
mov ecx, eax
and ecx, 0x80000001
jns 0x10007f2f
dec ecx
or ecx, 0xfffffffe
inc ecx
mov dword [ebp - 0x48], eax
sar dword [ebp - 0x48], 2
mov dword [ebp - 0x4c], ecx
test ecx, ecx
je 0x10007f74
xor ecx, ecx
push 7
xor edi, edi
pop eax
cmp dword [ebp - 0x48], ecx
jbe 0x10007f69
mov dl, byte [eax + 0x10028ab8]
xor byte [esi + edi], dl
inc ecx
cmp ecx, dword [eax*4 + 0x10028ac0]
jle 0x10007f63
dec eax
test eax, eax
jg 0x10007f69
xor ecx, ecx
inc edi
cmp edi, dword [ebp - 0x48]
jb 0x10007f49
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x10008052
push 0x10
pop edx
cmp dword [ebp - 0x48], edx
jb 0x10007fcc
cmp dword [ebp - 0x48], 0x9e
ja 0x10007fd5
xor eax, eax
jmp 0x10007f8c
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
mov cl, byte [eax + 0x10028ab8]
je 0x10007fa6
mov edi, dword [eax*8 + 0x10028ae0]
lea edx, [eax*8 + 0x10028ae4]
jmp 0x10007fb4
mov edi, dword [eax*8 + 0x10028ae4]
lea edx, [eax*8 + 0x10028ae0]
mov ebx, dword [edx]
xor cl, byte [edi + esi]
mov bl, byte [esi + ebx]
mov byte [edi + esi], bl
mov edx, dword [edx]
inc eax
mov byte [esi + edx], cl
cmp eax, 8
jl 0x10007f89
jmp 0x10008048
cmp dword [ebp - 0x48], 0x9e
jbe 0x1000803b
mov eax, 0x10028b20
cmp dword [ebp - 0x4c], 0
je 0x10008009
mov ecx, dword [eax]
lea edi, [esi + ecx]
mov ecx, edx
and ecx, 0x80000007
jns 0x10007ff4
dec ecx
or ecx, 0xfffffff8
inc ecx
mov ebx, dword [eax + 4]
mov cl, byte [ecx + 0x10028ab8]
xor cl, byte [edi]
mov bl, byte [esi + ebx]
mov byte [edi], bl
mov edi, dword [eax + 4]
jmp 0x1000802e
mov edi, dword [eax + 4]
mov ecx, edx
and ecx, 0x80000007
jns 0x1000801b
dec ecx
or ecx, 0xfffffff8
inc ecx
mov ebx, dword [eax]
mov cl, byte [ecx + 0x10028ab8]
xor cl, byte [edi + esi]
mov bl, byte [esi + ebx]
mov byte [edi + esi], bl
mov edi, dword [eax]
dec edx
add eax, 8
mov byte [esi + edi], cl
test edx, edx
jg 0x10007fda
jmp 0x10008048
mov al, byte [0x10028abd]
add al, byte [0x10028aba]
xor byte [esi], al
cmp dword [ebp - 0x4c], 0
je 0x10007f3d
push 0x10
xor ecx, ecx
pop eax
mov dl, byte [ebp + ecx - 0x44]
xor dl, 0x32
mov byte [ecx + 0x100284f0], dl
inc ecx
cmp ecx, eax
jl 0x10008057
mov esi, dword [0x10028818]
mov dword [0x1002a178], eax
push 5
mov eax, esi
cdq
pop edi
idiv edi
xor eax, eax
pop edi
pop ebx
add ecx, edx
test ecx, ecx
jle 0x1000809a
cmp eax, 4
jge 0x10008095
mov dl, al
add dl, dl
add dl, cl
mov byte [ebp + eax - 0x44], dl
inc eax
cmp eax, ecx
jl 0x10008086
movzx eax, byte [0x10028510]
add eax, dword [0x10028814]
push 0xa
add eax, esi
add eax, ecx
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
inc eax
pop esi
add dl, byte [ebp - 0x42]
mov byte [0x100284f3], dl
call fcn.1000e2d0
leave
ret