Function at 0x4edb58e4
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x100
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, eax
mov eax, dword [ebp + 8]
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
lea ecx, [ecx]
mov ecx, dword [eax]
inc dword [ebp + ecx*4 - 0x84]
lea ecx, [ebp + ecx*4 - 0x84]
add eax, 4
dec edx
jne 0x4edb5933
cmp dword [ebp - 0x84], esi
jne 0x4edb5963
mov eax, dword [ebp + 0x1c]
mov dword [eax], ebx
mov dword [edi], ebx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [edi]
mov dword [ebp - 4], eax
mov ecx, 1
lea ebx, [ebx]
cmp dword [ebp + ecx*4 - 0x84], ebx
jne 0x4edb59aa
cmp dword [ebp + ecx*4 - 0x80], ebx
jne 0x4edb599a
cmp dword [ebp + ecx*4 - 0x7c], ebx
jne 0x4edb599d
cmp dword [ebp + ecx*4 - 0x78], ebx
jne 0x4edb59a2
cmp dword [ebp + ecx*4 - 0x74], ebx
jne 0x4edb59a7
add ecx, 5
cmp ecx, 0xf
ja 0x4edb59aa
jmp 0x4edb596f
inc ecx
jmp 0x4edb59aa
add ecx, 2
jmp 0x4edb59aa
add ecx, 3
jmp 0x4edb59aa
add ecx, 4
cmp eax, ecx
mov dword [ebp - 8], ecx
jae 0x4edb59b6
mov dword [ebp - 4], ecx
mov eax, ecx
mov esi, 0xf
lea esp, [esp]
cmp dword [ebp + esi*4 - 0x84], ebx
jne 0x4edb59ca
dec esi
jne 0x4edb59be
cmp eax, esi
mov dword [ebp - 0x1c], esi
jbe 0x4edb59d6
mov dword [ebp - 4], esi
mov eax, esi
mov edx, 1
shl edx, cl
cmp ecx, esi
mov dword [edi], eax
jae 0x4edb59f7
sub edx, dword [ebp + ecx*4 - 0x84]
js 0x4edb5d20
inc ecx
shl edx, 1
cmp ecx, esi
jb 0x4edb59e3
lea ecx, [esi*4]
mov edi, dword [ebp + ecx - 0x84]
mov dword [ebp - 0x20], ecx
lea ecx, [ebp + ecx - 0x84]
sub edx, edi
mov dword [ebp - 0x38], edx
js 0x4edb5d20
add edi, edx
mov dword [ecx], edi
xor ecx, ecx
dec esi
mov dword [ebp - 0xc0], ebx
je 0x4edb5a3c
xor edi, edi
add ecx, dword [ebp + edi - 0x80]
add edi, 4
dec esi
mov dword [ebp + edi - 0xc0], ecx
jne 0x4edb5a2b
mov esi, dword [ebp + 8]
xor edi, edi
mov edi, edi
mov ecx, dword [esi]
add esi, 4
cmp ecx, ebx
mov dword [ebp - 0x14], esi
je 0x4edb5a6b
mov esi, dword [ebp + ecx*4 - 0xc4]
mov ebx, dword [ebp + 0x28]
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
mov ecx, dword [ebp + 0xc]
inc edi
cmp edi, ecx
jb 0x4edb5a43
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp + ecx - 0xc4]
mov esi, dword [ebp - 0x1c]
mov dword [ebp + 0xc], ecx
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov dword [ebp - 0xc4], ebx
mov ebx, eax
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 8]
xor edi, edi
neg ebx
cmp ecx, esi
mov dword [ebp - 0x18], edi
mov dword [ebp + 8], 0xffffffff
jg 0x4edb5d00
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
mov edx, dword [ebp - 0x24]
mov edx, dword [edx]
test edx, edx
mov dword [ebp - 0x10], edx
je 0x4edb5ce5
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
dec ecx
mov dword [ebp - 0x10], ecx
lea ecx, [ebx + eax]
cmp edx, ecx
jle 0x4edb5bed
mov edx, dword [ebp - 0x10]
inc edx
mov dword [ebp - 0x44], edx
mov edx, ebx
sub edx, eax
jmp 0x4edb5b03
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
add edx, eax
add ebx, eax
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x1c]
inc edi
add ecx, eax
sub edx, ebx
cmp edx, eax
mov dword [ebp + 8], edi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x40], ecx
jbe 0x4edb5b24
mov edx, eax
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x44]
sub ecx, ebx
mov eax, 1
shl eax, cl
cmp eax, edi
jbe 0x4edb5b65
mov ebx, dword [ebp - 0x10]
or edi, 0xffffffff
sub edi, ebx
mov ebx, dword [ebp - 0x24]
add eax, edi
cmp ecx, edx
jae 0x4edb5b62
inc ecx
cmp ecx, edx
jae 0x4edb5b62
lea ebx, [ebx]
mov edi, dword [ebx + 4]
add ebx, 4
shl eax, 1
cmp eax, edi
jbe 0x4edb5b62
sub eax, edi
inc ecx
cmp ecx, edx
jb 0x4edb5b4f
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, 1
shl edx, cl
mov dword [ebp - 0x34], edx
add edx, eax
cmp edx, 0x5a0
ja 0x4edb5d20
mov edi, dword [ebp + 0x20]
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 + 0x24]
mov dword [edi], edx
mov edx, dword [ebp + 8]
test edx, edx
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
je 0x4edb5bdc
mov esi, dword [ebp - 0xc]
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 0x4edb5be1
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x40]
cmp dword [ebp - 8], ecx
jg 0x4edb5afd
mov edx, dword [ebp - 8]
mov ecx, dword [ebp + 0x28]
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 0x4edb5c0d
mov byte [ebp - 0x2c], 0xc0
jmp 0x4edb5c46
mov esi, dword [eax]
mov ecx, dword [ebp + 0x10]
cmp esi, ecx
jae 0x4edb5c29
cmp esi, 0x100
setb cl
dec cl
and ecx, 0x60
mov byte [ebp - 0x2c], cl
jmp 0x4edb5c40
sub esi, ecx
mov ecx, dword [ebp + 0x18]
shl esi, 2
mov cl, byte [ecx + esi]
add cl, 0x50
mov byte [ebp - 0x2c], cl
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + esi]
add eax, 4
mov dword [ebp - 0x14], eax
mov ecx, edx
sub ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, ebx
mov eax, edi
shr eax, cl
cmp eax, dword [ebp - 0x34]
jae 0x4edb5c7f
mov ecx, dword [ebp - 0xc]
lea ecx, [ecx + eax*8]
mov edi, dword [ebp - 0x2c]
mov dword [ecx], edi
lea edi, [edx*8]
mov dword [ecx + 4], esi
add ecx, edi
mov edi, dword [ebp - 0x34]
add eax, edx
cmp eax, edi
jb 0x4edb5c62
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov eax, 1
shl eax, cl
test edi, eax
je 0x4edb5c97
mov edi, edi
xor edi, eax
shr eax, 1
test edi, eax
jne 0x4edb5c8f
mov ecx, ebx
mov edx, 1
shl edx, cl
xor edi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + eax*4 - 0xc4]
dec edx
and edx, edi
cmp edx, ecx
mov dword [ebp - 0x18], edi
je 0x4edb5cd4
sub ebx, dword [ebp - 4]
mov ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, dword [ebp + eax*4 - 0xc8]
dec eax
dec edx
and edx, edi
cmp edx, ecx
jne 0x4edb5cb6
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x10]
test eax, eax
mov eax, dword [ebp - 4]
jne 0x4edb5adb
mov ecx, dword [ebp - 8]
add dword [ebp - 0x24], 4
mov edx, dword [ebp - 0x30]
inc ecx
inc edx
mov dword [ebp - 0x30], edx
cmp ecx, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
jle 0x4edb5acb
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x4edb5958
cmp dword [ebp - 0x1c], 1
je 0x4edb5958
pop edi
pop esi
mov eax, 0xfffffffb
pop ebx
mov esp, ebp
pop ebp
ret 0x24
pop edi
pop esi
mov eax, 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret 0x24