Function at 0x5edf3d
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x40
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x1c], 1
push esi
xor edx, edx
mov dword [esp + 0x24], ebp
push edi
lea eax, [ebp + 0x16c]
mov dword [esp + 0x1c], edx
mov esi, eax
mov dword [esp + 0x38], eax
mov ebx, eax
lea ecx, [esi + 0xfd6]
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x54], edx
je 0x5ee267
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x5ee267
and dword [ebp + 0x116c], edx
and dword [esp + 0x14], edx
mov edi, dword [esp + 0x54]
test ecx, ecx
jle 0x5ee258
cmp esi, dword [esp + 0x3c]
ja 0x5ee24a
mov cl, byte [edi]
movsx eax, cl
mov dword [esp + 0x18], esi
cmp eax, 0x3f
jg 0x5ede1b
je 0x5edd67
sub eax, 0x24
je 0x5edd52
sub eax, 6
je 0x5edd67
sub eax, 1
je 0x5edd67
sub eax, 3
jne 0x5ede37
mov byte [esi], 2
inc esi
jmp 0x5ee1cd
cmp byte [edi + 1], 0
jne 0x5edd5d
mov byte [esi], 5
jmp 0x5edd4c
mov byte [esi], 1
inc esi
mov al, byte [edi]
mov byte [esi], al
jmp 0x5edd4c
cmp edi, dword [esp + 0x54]
je 0x5ee20b
mov al, byte [ebx]
mov dword [esp + 0x18], ebx
cmp al, 0xb
je 0x5ee1cd
cmp al, 0xd
je 0x5ee1cd
movsx eax, al
sub eax, 4
je 0x5ee204
dec eax
sub eax, 1
je 0x5ee204
sub eax, 1
je 0x5ee204
sub eax, 1
je 0x5ee204
sub eax, 1
je 0x5ee204
sub eax, 1
je 0x5ee204
cmp cl, 0x2b
jne 0x5edddc
mov edx, ebx
mov ecx, esi
cmp edx, esi
jae 0x5edddc
mov al, byte [edx]
mov byte [esi], al
inc esi
inc edx
cmp edx, ecx
jb 0x5eddce
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x18]
mov byte [esi], 0
inc esi
mov byte [esi], 0
lea edx, [esi + 1]
jmp 0x5eddf2
mov al, byte [esi - 1]
mov byte [esi], al
dec esi
cmp esi, ebx
ja 0x5eddec
cmp byte [edi], 0x3f
jne 0x5ede00
mov byte [esi], 0xc
jmp 0x5ede10
cmp byte [edi + 1], 0x3f
sete al
lea eax, [eax*2 + 0xb]
mov byte [esi], al
mov esi, edx
mov edx, dword [esp + 0x1c]
jmp 0x5ee1d1
sub eax, 0x5b
je 0x5edff9
sub eax, 1
je 0x5edf06
dec eax
sub eax, 1
je 0x5edef4
cmp byte [esp + 0x60], 0
je 0x5ede94
cmp cl, 0x28
jne 0x5ede71
mov ecx, dword [esp + 0x24]
cmp ecx, 0xa
jge 0x5ee212
inc edx
mov al, cl
mov dword [ebp + edx*4 + 0x144], ecx
inc ecx
mov byte [esi], 6
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
mov byte [esi + 1], al
add esi, 2
jmp 0x5ee1cd
cmp cl, 0x29
jne 0x5ede94
cmp byte [ebx], 6
je 0x5ee220
test edx, edx
jle 0x5ee219
mov byte [esi], 7
mov al, byte [ebp + edx*4 + 0x144]
dec edx
jmp 0x5ede62
test cl, cl
movzx edx, cl
push 0x5c
pop eax
cmove edx, eax
cmp byte [esp + 0x5c], 0
mov byte [esp + 0x40], dl
jne 0x5edee6
mov eax, dword [ebp + 0x1194]
movzx ecx, dl
cmp byte [ecx + eax], 2
jne 0x5edee6
push 0
push dword [esp + 0x44]
mov byte [esi], 3
mov ecx, ebp
inc esi
call fcn.005edc4e
push 0x20
lea ecx, [ebp + 0x1170]
pop edx
mov al, byte [ecx]
mov byte [esi], al
inc esi
mov byte [ecx], 0
inc ecx
sub edx, 1
jne 0x5eded3
jmp 0x5ee1c9
mov byte [esi], 1
mov byte [esi + 1], dl
add esi, 2
jmp 0x5ee1c9
cmp edi, dword [esp + 0x54]
jne 0x5edd5d
mov byte [esi], 4
jmp 0x5edd4c
inc dword [esp + 0x14]
inc edi
mov cl, byte [edi]
movsx edx, cl
lea eax, [edx - 0x31]
cmp eax, 0xd
ja case.0x5edf1f.58
movzx eax, byte [eax + 0x5ee294]
jmp dword [eax*4 + 0x5ee284]
mov byte [esi], 8
inc esi
jmp 0x5ee1c9
cmp byte [ebx], 8
je 0x5ee227
mov byte [esi], 9
jmp 0x5edf29
lea eax, [edx - 0x30]
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x5edf55
cmp dword [ebp + edx*4 + 0x144], eax
je 0x5ee22e
cmp dword [esp + 0x24], eax
jle 0x5ee235
mov byte [esi], 0xa
jmp 0x5ede66
cmp byte [esp + 0x60], 0
jne 0x5edfad
cmp cl, 0x28
jne 0x5edf89
mov ecx, dword [esp + 0x24]
cmp ecx, 0xa
jge 0x5ee23c
mov edx, dword [esp + 0x1c]
jmp 0x5ede50
cmp cl, 0x29
jne 0x5edfad
cmp byte [ebx], 6
je 0x5ee243
mov edx, dword [esp + 0x1c]
test edx, edx
jg 0x5ede87
mov eax, 0x6bf40c
jmp 0x5ee24f
lea eax, [esp + 0x2c]
mov ecx, ebp
push eax
push edi
call fcn.005ee35c
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x2c]
add edi, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
test eax, eax
js 0x5edfd9
mov byte [esi], 1
mov byte [esi + 1], al
jmp 0x5edeec
push 0x20
mov byte [esi], 3
lea ecx, [ebp + 0x1170]
inc esi
pop edx
mov al, byte [ecx]
mov byte [esi], al
inc esi
mov byte [ecx], 0
inc ecx
sub edx, 1
jne 0x5edfe6
jmp 0x5ee1c9
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov byte [esi], 3
inc esi
inc edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x20], ebx
mov al, byte [edi]
cmp al, 0x5e
jne 0x5ee01d
inc edi
mov byte [esp + 0x13], 0xff
inc ecx
mov al, byte [edi]
jmp 0x5ee021
mov byte [esp + 0x13], bl
inc ecx
mov dword [esp + 0x14], ecx
cmp al, 0x2d
jne 0x5ee045
inc ecx
inc edi
push 0x2d
pop ebx
mov dword [esp + 0x14], ecx
mov ecx, ebp
push ebx
mov dword [esp + 0x24], ebx
call fcn.005edc2a
mov al, byte [edi]
mov ecx, dword [esp + 0x14]
cmp al, 0x5d
jne 0x5ee060
inc ecx
inc edi
push 0x5d
pop ebx
mov dword [esp + 0x14], ecx
mov ecx, ebp
push ebx
mov dword [esp + 0x24], ebx
call fcn.005edc2a
mov al, byte [edi]
test al, al
je 0x5ee13c
mov byte [esp + 0x34], al
cmp al, 0x5d
je 0x5ee1ac
cmp al, 0x2d
jne 0x5ee14f
test ebx, ebx
jns 0x5ee094
push 0x2d
pop ebx
push ebx
mov dword [esp + 0x24], ebx
mov ecx, ebp
call fcn.005edc2a
jmp 0x5ee124
mov al, byte [edi + 1]
test al, al
je 0x5ee13c
cmp al, 0x5d
je 0x5ee080
inc dword [esp + 0x14]
lea ecx, [ebx + 1]
movzx ebp, al
inc edi
push 0x5c
pop eax
mov dword [esp + 0x30], ecx
cmp ebp, eax
jne 0x5ee0f9
inc edi
cmp byte [edi], 0
je 0x5ee13c
mov ebx, dword [esp + 0x28]
lea eax, [esp + 0x44]
push eax
push edi
mov ecx, ebx
call fcn.005ee35c
add edi, dword [esp + 0x44]
mov ebp, eax
mov eax, dword [esp + 0x14]
inc eax
add eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
test ebp, ebp
js 0x5ee146
push ebp
mov ecx, ebx
call fcn.005edc2a
mov ecx, dword [esp + 0x30]
mov ebx, ebp
mov dword [esp + 0x20], ebx
cmp ecx, ebp
jg 0x5ee120
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
push dword [esp + 0x5c]
mov al, bl
mov ecx, esi
push eax
inc ebx
call fcn.005edc4e
cmp ebx, ebp
jle 0x5ee105
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
inc eax
inc edi
mov dword [esp + 0x14], eax
mov al, byte [edi]
mov byte [esp + 0x34], al
test al, al
jne 0x5ee06c
mov eax, 0x6bf368
jmp 0x5ee24f
mov ebp, dword [esp + 0x28]
jmp 0x5ee080
cmp al, 0x5c
jne 0x5ee191
cmp byte [edi + 1], 0
je 0x5ee191
lea eax, [esp + 0x4c]
inc edi
push eax
push edi
mov ecx, ebp
call fcn.005ee35c
add edi, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x20], ebx
add eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
test ebx, ebx
js 0x5ee188
push ebx
jmp 0x5ee088
or ebx, 0xffffffff
mov dword [esp + 0x20], ebx
jmp 0x5ee128
push dword [esp + 0x5c]
movzx ebx, al
mov ecx, ebp
push dword [esp + 0x38]
mov dword [esp + 0x28], ebx
call fcn.005edc4e
jmp 0x5ee124
mov bl, byte [esp + 0x13]
lea ecx, [ebp + 0x1170]
push 0x20
pop edx
mov al, byte [ecx]
xor al, bl
mov byte [esi], al
inc esi
mov byte [ecx], 0
inc ecx
sub edx, 1
jne 0x5ee1b9
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
inc eax
inc edi
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x58]
jl 0x5edd13
test edx, edx
jle 0x5ee258
mov ecx, dword [esp + 0x38]
mov eax, 0x6bf454
cmp byte [esp + 0x60], 0
mov byte [ecx], 0
mov ecx, 0x6bf460
cmove eax, ecx
jmp 0x5ee27a
mov eax, 0x6bf384
jmp 0x5ee24f
mov eax, 0x6bf374
jmp 0x5ee24f
mov eax, 0x6bf41c
jmp 0x5ee24f
mov eax, 0x6bf448
jmp 0x5ee24f
mov eax, 0x6bf430
jmp 0x5ee24f
mov eax, 0x6bf394
jmp 0x5ee24f
mov eax, 0x6bf3b0
jmp 0x5ee24f
mov eax, 0x6bf3c4
jmp 0x5ee24f
mov eax, 0x6bf3dc
jmp 0x5ee24f
mov eax, 0x6bf3f0
jmp 0x5ee24f
mov eax, 0x6bf354
mov ecx, dword [esp + 0x38]
mov byte [ecx], 0
jmp 0x5ee27a
mov byte [esi], 0
mov dword [ebp + 0x116c], 1
jmp 0x5ee26f
cmp dword [ebp + 0x116c], edx
je 0x5ee273
xor eax, eax
jmp 0x5ee27a
mov byte [eax], dl
mov eax, 0x6bf334
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x10