Function at 0x48e200
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
mov ecx, dword [ebp + 8]
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov edx, esi
jmp 0x48e250
mov eax, dword [ecx]
inc dword [ebp + eax*4 - 0x84]
lea eax, [ebp + eax*4 - 0x84]
add ecx, 4
sub edx, 1
jne 0x48e250
cmp dword [ebp - 0x84], esi
jne 0x48e282
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov dword [eax], ebx
pop esi
mov dword [ecx], ebx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x20]
mov eax, dword [edx]
mov dword [ebp - 4], eax
mov ecx, 1
nop
cmp dword [ebp + ecx*4 - 0x84], ebx
jne 0x48e29f
inc ecx
cmp ecx, 0xf
jbe 0x48e290
mov dword [ebp - 0xc], ecx
cmp eax, ecx
jae 0x48e2ab
mov dword [ebp - 4], ecx
mov eax, ecx
mov esi, 0xf
cmp dword [ebp + esi*4 - 0x84], ebx
jne 0x48e2be
sub esi, 1
jne 0x48e2b0
mov dword [ebp - 0x1c], esi
cmp eax, esi
jbe 0x48e2ca
mov dword [ebp - 4], esi
mov eax, esi
mov dword [edx], eax
mov edx, 1
shl edx, cl
cmp ecx, esi
jae 0x48e2e7
sub edx, dword [ebp + ecx*4 - 0x84]
js 0x48e30e
inc ecx
add edx, edx
cmp ecx, esi
jb 0x48e2d7
lea ecx, [esi*4]
push edi
lea edi, [ebp + ecx - 0x84]
mov dword [ebp - 0x20], ecx
mov ecx, dword [edi]
sub edx, ecx
mov dword [ebp - 0x38], edx
jns 0x48e319
pop edi
pop esi
mov eax, 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
mov eax, 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret
add ecx, edx
mov dword [edi], ecx
xor ecx, ecx
sub esi, 1
mov dword [ebp - 0xc0], ebx
je 0x48e343
xor edi, edi
lea esp, [esp]
add ecx, dword [ebp + edi - 0x80]
add edi, 4
sub esi, 1
mov dword [ebp + edi - 0xc0], ecx
jne 0x48e330
mov esi, dword [ebp + 8]
xor edi, edi
mov ecx, dword [esi]
add esi, 4
mov dword [ebp - 0x14], esi
cmp ecx, ebx
je 0x48e370
mov esi, dword [ebp + ecx*4 - 0xc4]
mov ebx, dword [ebp + 0x2c]
lea ecx, [ebp + ecx*4 - 0xc4]
mov dword [ebx + esi*4], edi
inc esi
mov dword [ecx], esi
mov esi, dword [ebp - 0x14]
xor ebx, ebx
inc edi
cmp edi, dword [ebp + 0xc]
jb 0x48e348
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp + ecx - 0xc4]
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov dword [ebp - 0xc4], ebx
mov ebx, eax
mov dword [ebp - 0x100], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0xc]
xor edi, edi
neg ebx
cmp ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edi
mov dword [ebp + 8], 0xffffffff
jg 0x48e5f8
mov esi, dword [ebp - 0x28]
lea edx, [ecx - 1]
mov dword [ebp - 0x30], edx
lea edx, [ebp + ecx*4 - 0x84]
mov dword [ebp - 0x24], edx
lea esp, [esp]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx]
mov dword [ebp - 0x10], edx
test edx, edx
je 0x48e5e1
dec dword [ebp - 0x10]
lea ecx, [ebx + eax]
cmp dword [ebp - 0xc], ecx
jle 0x48e4e6
mov edx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 0x44], edx
mov edx, ebx
sub edx, eax
jmp 0x48e406
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
inc dword [ebp + 8]
add edx, eax
add ebx, eax
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x1c]
add ecx, eax
sub edx, ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x40], ecx
cmp edx, eax
jbe 0x48e423
mov edx, eax
mov ecx, dword [ebp - 0xc]
sub ecx, ebx
mov eax, 1
shl eax, cl
cmp eax, dword [ebp - 0x44]
jbe 0x48e45e
mov ebx, dword [ebp - 0x24]
or edi, 0xffffffff
sub edi, dword [ebp - 0x10]
add eax, edi
cmp ecx, edx
jae 0x48e45b
inc ecx
cmp ecx, edx
jae 0x48e45b
mov edi, dword [ebx + 4]
add ebx, 4
add eax, eax
cmp eax, edi
jbe 0x48e45b
inc ecx
sub eax, edi
cmp ecx, edx
jb 0x48e448
mov ebx, dword [ebp - 8]
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov edx, 1
shl edx, cl
mov dword [ebp - 0x34], edx
add edx, eax
cmp edx, 0x5a0
ja 0x48e60e
mov edi, dword [ebp + 0x24]
lea eax, [edi + eax*8]
mov edi, dword [ebp + 8]
lea edi, [ebp + edi*4 - 0x100]
mov dword [ebp - 0x3c], edi
mov dword [edi], eax
mov edi, dword [ebp + 0x28]
mov dword [edi], edx
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x18]
mov dword [ebp - 8], eax
test edx, edx
je 0x48e4d5
mov esi, dword [ebp - 8]
mov byte [ebp - 0x2c], cl
mov ecx, dword [ebp - 0x20]
mov eax, edi
shr eax, cl
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx - 4]
mov dword [ebp + edx*4 - 0xc4], edi
mov dl, byte [ebp - 4]
sub esi, ecx
mov byte [ebp - 0x2b], dl
mov edx, dword [ebp - 0x2c]
sar esi, 3
sub esi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
jmp 0x48e4da
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x40]
cmp dword [ebp - 0xc], ecx
jg 0x48e400
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x2c]
mov al, dl
sub al, bl
mov byte [ebp - 0x2b], al
mov eax, dword [ebp + 0xc]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
jb 0x48e506
mov byte [ebp - 0x2c], 0xc0
jmp 0x48e540
mov esi, dword [eax]
mov ecx, dword [ebp + 0x10]
cmp esi, ecx
jae 0x48e522
cmp esi, 0x100
sbb cl, cl
and cl, 0xa0
add cl, 0x60
mov byte [ebp - 0x2c], cl
jmp 0x48e53a
sub esi, ecx
mov ecx, dword [ebp + 0x18]
add esi, esi
add esi, esi
mov cl, byte [esi + ecx]
add cl, 0x50
mov byte [ebp - 0x2c], cl
mov ecx, dword [ebp + 0x14]
mov esi, dword [esi + ecx]
add eax, 4
mov dword [ebp - 0x14], eax
mov ecx, edx
sub ecx, ebx
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, ebx
shr eax, cl
cmp eax, dword [ebp - 0x34]
jae 0x48e57b
mov ecx, dword [ebp - 8]
lea ecx, [ecx + eax*8]
lea esp, [esp]
mov edi, dword [ebp - 0x2c]
mov dword [ecx], edi
lea edi, [edx*8]
mov dword [ecx + 4], esi
add eax, edx
add ecx, edi
cmp eax, dword [ebp - 0x34]
jb 0x48e560
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov eax, 1
shl eax, cl
test edi, eax
je 0x48e598
lea esp, [esp]
xor edi, eax
shr eax, 1
test edi, eax
jne 0x48e590
mov edx, 1
mov ecx, ebx
shl edx, cl
xor edi, eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], edi
dec edx
and edx, edi
cmp edx, dword [ebp + eax*4 - 0xc4]
je 0x48e5d1
sub ebx, dword [ebp - 4]
mov edx, 1
mov ecx, ebx
shl edx, cl
dec eax
dec edx
and edx, edi
cmp edx, dword [ebp + eax*4 - 0xc4]
jne 0x48e5b5
mov dword [ebp + 8], eax
cmp dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
jne 0x48e3e0
mov ecx, dword [ebp - 0xc]
add dword [ebp - 0x24], 4
inc dword [ebp - 0x30]
inc ecx
cmp ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], ecx
jle 0x48e3d0
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x48e61a
cmp dword [ebp - 0x1c], 1
je 0x48e61a
pop edi
pop esi
mov eax, 0xfffffffb
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffc
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret