Function at 0x4de690
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov edx, dword [ebp + 8]
mov dword [ebp - 8], 0
mov dword [ebp - 0x20], 1
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x18], edi
lea ecx, [edi + 0x16c]
mov dword [ebp - 0x14], ecx
mov esi, ecx
mov dword [ebp - 0x10], ecx
lea eax, [esi + 0xfd6]
mov dword [ebp - 0x30], eax
test edx, edx
je 0x4dee0a
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4dee0a
push ebx
mov ebx, edx
mov dword [edi + 0x116c], 0
xor edx, edx
mov dword [ebp - 0xc], edx
test eax, eax
jle 0x4dedf2
cmp esi, dword [ebp - 0x30]
ja 0x4dedde
mov cl, byte [ebx]
movsx eax, cl
add eax, 0xffffffdc
mov dword [ebp - 0x1c], esi
mov byte [ebp - 1], cl
cmp eax, 0x3a
ja case.0x4de719.37
movzx eax, byte [eax + 0x4dee4c]
jmp dword [eax*4 + 0x4dee30]
mov byte [esi], 2
inc esi
jmp 0x4decaf
cmp ebx, dword [ebp + 8]
jne 0x4de737
mov byte [esi], 4
inc esi
jmp 0x4decaf
mov byte [esi], 1
inc esi
mov al, byte [ebx]
mov byte [esi], al
inc esi
jmp 0x4decaf
cmp byte [ebx + 1], 0
jne 0x4de737
mov byte [esi], 5
inc esi
jmp 0x4decaf
inc ebx
mov byte [esi], 3
inc esi
xor ecx, ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x10], ecx
mov al, byte [ebx]
cmp al, 0x5e
jne 0x4de772
mov al, byte [ebx + 1]
inc ebx
mov byte [ebp - 1], 0xff
inc edx
jmp 0x4de775
mov byte [ebp - 1], cl
inc edx
mov dword [ebp - 0xc], edx
cmp al, 0x2d
jne 0x4de794
or byte [edi + 0x1175], 0x20
inc edx
mov al, byte [ebx + 1]
inc ebx
mov ecx, 0x2d
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
cmp al, 0x5d
jne 0x4de7af
or byte [edi + 0x117b], 0x20
inc edx
mov al, byte [ebx + 1]
inc ebx
mov ecx, 0x5d
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
test al, al
je 0x4decee
mov dword [ebp - 0x34], ebx
mov dl, al
cmp al, 0x5d
je 0x4de8ce
mov dl, byte [ebx]
cmp al, 0x2d
jne 0x4de8ff
test ecx, ecx
jns 0x4de7fa
movsx eax, dl
mov dword [ebp - 0x10], eax
movzx edx, dl
mov eax, edx
and edx, 7
shr eax, 3
lea ecx, [eax + edi]
mov al, byte [edx + 0x417d50]
or byte [ecx + 0x1170], al
mov ecx, dword [ebp - 0x10]
jmp 0x4de8bd
lea eax, [ebx + 1]
mov dword [ebp - 0x28], eax
mov al, byte [eax]
test al, al
je 0x4decee
cmp al, 0x5d
je 0x4de7d2
inc dword [ebp - 0xc]
lea edi, [ecx + 1]
mov ebx, dword [ebp - 0x28]
movzx eax, al
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], eax
cmp eax, 0x5c
jne 0x4de87f
mov ebx, dword [ebp - 0x34]
add ebx, 2
cmp byte [ebx], 0
je 0x4decee
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x38]
push eax
push ebx
call fcn.004de360
mov edx, dword [ebp - 0xc]
mov ecx, eax
mov eax, dword [ebp - 0x38]
inc edx
add edx, eax
mov dword [ebp - 0x24], ecx
add ebx, eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x28], ebx
test ecx, ecx
js 0x4de883
movzx edx, cl
mov ecx, dword [ebp - 0x18]
mov eax, edx
shr eax, 3
and edx, 7
add ecx, eax
mov al, byte [edx + 0x417d50]
or byte [ecx + 0x1170], al
mov eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x10], ecx
test ecx, ecx
jns 0x4de897
mov edi, dword [ebp - 0x18]
mov ecx, 0x2d
mov dword [ebp - 0x10], ecx
or byte [edi + 0x1175], 0x20
jmp 0x4de8bd
cmp edi, eax
jg 0x4de8ba
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x18]
push dword [ebp + 0x10]
mov ecx, esi
push edi
call fcn.004de2b0
inc edi
cmp edi, ebx
jle 0x4de8a1
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x18]
mov al, byte [ebx + 1]
inc ebx
inc dword [ebp - 0xc]
mov dl, al
test al, al
jne 0x4de7b7
test dl, dl
je 0x4decee
mov ah, byte [ebp - 1]
lea ecx, [edi + 0x1170]
mov edx, 0x20
mov al, byte [ecx]
lea ecx, [ecx + 1]
xor al, ah
mov byte [esi], al
inc esi
mov byte [ecx - 1], 0
sub edx, 1
jne 0x4de8e4
mov edx, dword [ebp - 0xc]
jmp 0x4decaf
mov byte [ebp - 0x2c], al
cmp al, 0x5c
jne 0x4de95d
cmp byte [ebx + 1], 0
mov al, dl
mov byte [ebp - 0x2c], al
je 0x4de95d
lea eax, [ebp - 0x40]
inc ebx
push eax
push ebx
mov ecx, edi
call fcn.004de360
mov edx, dword [ebp - 0xc]
add ebx, dword [ebp - 0x40]
inc edx
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
test eax, eax
js 0x4de952
movzx edx, al
mov ecx, edx
and edx, 7
shr ecx, 3
mov al, byte [edx + 0x417d50]
or byte [ecx + edi + 0x1170], al
mov ecx, dword [ebp - 0x10]
jmp 0x4de8bd
or ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
jmp 0x4de8bd
push dword [ebp + 0x10]
movzx eax, al
mov ecx, edi
push dword [ebp - 0x2c]
mov dword [ebp - 0x10], eax
call fcn.004de2b0
mov ecx, dword [ebp - 0x10]
jmp 0x4de8bd
cmp ebx, dword [ebp + 8]
je 0x4ded16
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov al, byte [eax]
cmp al, 0xb
je 0x4decaf
cmp al, 0xd
je 0x4decaf
cmp al, 4
je 0x4ded02
cmp al, 5
jle 0x4de9ad
cmp al, 0xa
jle 0x4ded02
cmp cl, 0x2b
jne 0x4de9e4
xor ecx, ecx
mov eax, esi
sub eax, dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
cmova eax, ecx
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4de9e4
mov edx, dword [ebp - 0x1c]
mov edi, eax
nop dword [eax + eax]
mov al, byte [edx]
inc ecx
mov byte [esi], al
inc edx
inc esi
cmp ecx, edi
jb 0x4de9d0
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0xc]
mov byte [esi], 0
inc esi
lea ecx, [esi + 1]
mov byte [esi], 0
mov dword [ebp - 0x3c], ecx
cmp esi, dword [ebp - 0x1c]
jbe 0x4dea10
mov edi, dword [ebp - 0x1c]
nop dword [eax]
mov al, byte [esi - 1]
mov byte [esi], al
dec esi
cmp esi, edi
ja 0x4dea00
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x3c]
cmp byte [ebx], 0x3f
jne 0x4dea1f
mov byte [esi], 0xc
mov esi, ecx
jmp 0x4decaf
cmp byte [ebx + 1], 0x3f
sete al
lea eax, [eax*2 + 0xb]
mov byte [esi], al
mov esi, ecx
jmp 0x4decaf
mov cl, byte [ebx + 1]
inc ebx
movsx eax, cl
inc edx
mov dword [ebp - 0x3c], eax
add eax, 0xffffffcf
mov dword [ebp - 0xc], edx
cmp eax, 0xd
ja case.0x4dea53.58
movzx eax, byte [eax + 0x4dee98]
jmp dword [eax*4 + 0x4dee88]
mov byte [esi], 8
inc esi
jmp 0x4decaf
mov eax, dword [ebp - 0x10]
cmp byte [eax], 8
je 0x4ded2a
mov byte [esi], 9
inc esi
jmp 0x4decaf
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
add eax, 0xffffffd0
test ecx, ecx
jle 0x4dea92
cmp dword [edi + ecx*4 + 0x144], eax
je 0x4ded3e
cmp dword [ebp - 0x20], eax
jle 0x4ded52
mov byte [esi], 0xa
mov byte [esi + 1], al
add esi, 2
jmp 0x4decb2
cmp byte [ebp + 0x14], 0
jne 0x4deb15
cmp cl, 0x28
jne 0x4deae0
mov eax, dword [ebp - 0x20]
cmp eax, 0xa
jge 0x4ded66
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
mov dword [edi + ecx*4 + 0x144], eax
mov byte [esi], 6
mov byte [esi + 1], al
add esi, 2
inc eax
mov dword [ebp - 0x20], eax
jmp 0x4decb2
cmp cl, 0x29
jne 0x4deb15
mov eax, dword [ebp - 0x10]
cmp byte [eax], 6
je 0x4ded8e
mov ecx, dword [ebp - 8]
test ecx, ecx
jle 0x4ded7a
mov byte [esi], 7
mov al, byte [edi + ecx*4 + 0x144]
mov byte [esi + 1], al
add esi, 2
dec ecx
mov dword [ebp - 8], ecx
jmp 0x4decb2
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
push ebx
call fcn.004de360
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x44]
add ebx, dword [ebp - 0x44]
mov dword [ebp - 0xc], edx
test eax, eax
js 0x4deb3c
mov byte [esi], 1
mov byte [esi + 1], al
jmp 0x4decac
mov byte [esi], 3
lea ecx, [edi + 0x1170]
inc esi
mov edx, 0x20
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi], al
inc esi
mov byte [ecx - 1], 0
sub edx, 1
jne 0x4deb50
mov edx, dword [ebp - 0xc]
jmp 0x4decaf
cmp byte [ebp + 0x14], 0
je 0x4debd5
cmp cl, 0x28
jne 0x4deba0
mov eax, dword [ebp - 0x20]
cmp eax, 0xa
jge 0x4deda2
mov ecx, dword [ebp - 8]
inc ecx
mov dword [ebp - 8], ecx
mov dword [edi + ecx*4 + 0x144], eax
mov byte [esi], 6
mov byte [esi + 1], al
add esi, 2
inc eax
mov dword [ebp - 0x20], eax
jmp 0x4decb2
cmp cl, 0x29
jne 0x4debd5
mov eax, dword [ebp - 0x10]
cmp byte [eax], 6
je 0x4dedca
mov ecx, dword [ebp - 8]
test ecx, ecx
jle 0x4dedb6
mov byte [esi], 7
mov al, byte [edi + ecx*4 + 0x144]
mov byte [esi + 1], al
add esi, 2
dec ecx
mov dword [ebp - 8], ecx
jmp 0x4decb2
cmp byte [ebp - 1], 0
mov eax, 0x5c
movzx ecx, cl
cmove ecx, eax
cmp byte [ebp + 0x10], 0
mov dword [ebp - 0x28], ecx
jne 0x4deca6
movzx eax, cl
mov dword [ebp - 0x10], eax
mov edx, eax
mov eax, dword [edi + 0x1194]
cmp byte [edx + eax], 2
mov edx, dword [ebp - 0xc]
jne 0x4deca6
mov al, cl
mov byte [esi], 3
sub al, 0x61
lea edx, [edi + 0x1170]
inc esi
mov dword [ebp - 0x24], edx
cmp al, 0x19
ja 0x4dec3d
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
and eax, 7
shr ecx, 3
mov al, byte [eax + 0x417d50]
or byte [ecx + edx], al
mov eax, dword [ebp - 0x28]
sub al, 0x20
jmp 0x4dec5f
mov al, cl
mov ecx, dword [ebp - 0x10]
sub al, 0x41
shr ecx, 3
cmp al, 0x19
mov eax, dword [ebp - 0x10]
ja 0x4dec7c
and eax, 7
mov al, byte [eax + 0x417d50]
or byte [ecx + edx], al
mov eax, dword [ebp - 0x28]
add al, 0x20
mov ecx, dword [ebp - 0x24]
movzx edx, al
mov eax, edx
and edx, 7
shr eax, 3
add ecx, eax
mov al, byte [edx + 0x417d50]
mov edx, dword [ebp - 0x24]
or byte [ecx], al
jmp 0x4dec88
and eax, 7
mov al, byte [eax + 0x417d50]
or byte [ecx + edx], al
mov ecx, 0x20
nop dword [eax]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi], al
inc esi
mov byte [edx - 1], 0
sub ecx, 1
jne 0x4dec90
mov edx, dword [ebp - 0xc]
jmp 0x4decaf
mov byte [esi], 1
mov byte [esi + 1], cl
add esi, 2
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
inc edx
inc ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp + 0xc]
jl 0x4de6f2
test ecx, ecx
jle 0x4dedf2
mov eax, dword [ebp - 0x14]
mov ecx, 0x44b200
cmp byte [ebp + 0x14], 0
pop ebx
pop edi
mov byte [eax], 0
mov eax, 0x44b1f4
cmove eax, ecx
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b108
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b124
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b114
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b134
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b150
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b164
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b17c
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b1ac
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b190
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b1bc
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b1e8
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b1d0
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x14]
pop ebx
pop edi
pop esi
mov byte [eax], 0
mov eax, 0x44b0f4
mov esp, ebp
pop ebp
ret 0x10
mov byte [esi], 0
xor eax, eax
pop ebx
mov dword [edi + 0x116c], 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
cmp dword [edi + 0x116c], 0
je 0x4dee1d
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0x10
pop edi
mov byte [ecx], 0
mov eax, 0x44b0d4
pop esi
mov esp, ebp
pop ebp
ret 0x10