Function at 0x44efe0
Capabilities:
Encode data using xor

Disassembly:
push edi
mov edi, dword [esp + 0xc]
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x44eff0
sub eax, edx
cmp eax, 8
jae 0x44f021
push 0x14
call fcn.004eceb1
mov ecx, dword [0x54bf94]
mov dword [eax], ecx
mov dx, word [0x54bf98]
add esp, 4
mov word [eax + 4], dx
pop edi
ret 8
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, 1
nop
movsx ebx, byte [ecx + esi - 1]
movsx eax, byte [ecx + esi]
sub eax, ebx
jns 0x44f03f
neg eax
test edx, edx
jge 0x44f047
add edx, eax
jmp 0x44f049
sub edx, eax
add ecx, 1
cmp ecx, 8
jl 0x44f030
test edx, edx
jge 0x44f057
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x44f064
cmp eax, 0x39
jle 0x44f0a2
cmp eax, 0x61
jl 0x44f06e
cmp eax, 0x7a
jle 0x44f0a2
cmp eax, 0x41
jl 0x44f078
cmp eax, 0x5a
jle 0x44f0a2
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x44f089
cmp eax, 0x39
jle 0x44f0a2
cmp eax, 0x61
jl 0x44f093
cmp eax, 0x7a
jle 0x44f0a2
cmp eax, 0x41
jl 0x44f09d
cmp eax, 0x5a
jle 0x44f0a2
mov eax, 0x78
mov byte [edi + 8], al
movsx ecx, byte [esi + 7]
movsx eax, byte [esi + 8]
xor eax, ecx
movsx ecx, byte [esi + 6]
xor eax, ecx
movsx ecx, byte [esi + 5]
xor eax, ecx
movsx ecx, byte [esi + 4]
xor eax, ecx
movsx ecx, byte [esi + 3]
xor eax, ecx
movsx ecx, byte [esi + 2]
xor eax, ecx
movsx ecx, byte [esi + 1]
lea edx, [esi + 1]
xor eax, ecx
movsx ecx, byte [esi]
xor eax, ecx
cmp eax, 0x30
jge 0x44f0e6
movsx eax, byte [edi]
add eax, 1
cmp eax, 0x7a
jle 0x44f0f2
movsx eax, byte [edi + 1]
add eax, 1
cmp eax, 0x30
jl 0x44f0fc
cmp eax, 0x39
jle 0x44f115
cmp eax, 0x61
jl 0x44f106
cmp eax, 0x7a
jle 0x44f115
cmp eax, 0x41
jl 0x44f110
cmp eax, 0x5a
jle 0x44f115
mov eax, 0x52
mov byte [edi + 9], al
xor ecx, ecx
mov esi, 1
nop
movsx ebx, byte [esi + edi - 1]
movsx eax, byte [esi + edi]
sub eax, ebx
jns 0x44f12f
neg eax
test ecx, ecx
jge 0x44f137
add ecx, eax
jmp 0x44f139
sub ecx, eax
add esi, 1
cmp esi, 8
jl 0x44f120
mov ebp, 2
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x44f156
neg eax
test ecx, ecx
jge 0x44f15e
add ecx, eax
jmp 0x44f160
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebx, byte [edx]
mov eax, esi
sub eax, ebx
jns 0x44f16f
neg eax
test ecx, ecx
jge 0x44f177
add ecx, eax
jmp 0x44f179
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x44f183
neg eax
test ecx, ecx
jge 0x44f18b
add ecx, eax
jmp 0x44f18d
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x44f197
neg eax
test ecx, ecx
jge 0x44f19f
add ecx, eax
jmp 0x44f1a1
sub ecx, eax
add edx, 4
sub ebp, 1
jne 0x44f146
test ecx, ecx
jge 0x44f1af
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x44f1bc
cmp eax, 0x39
jle 0x44f1fa
cmp eax, 0x61
jl 0x44f1c6
cmp eax, 0x7a
jle 0x44f1fa
cmp eax, 0x41
jl 0x44f1d0
cmp eax, 0x5a
jle 0x44f1fa
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x44f1e1
cmp eax, 0x39
jle 0x44f1fa
cmp eax, 0x61
jl 0x44f1eb
cmp eax, 0x7a
jle 0x44f1fa
cmp eax, 0x41
jl 0x44f1f5
cmp eax, 0x5a
jle 0x44f1fa
mov eax, 0x6e
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov byte [ebx + 0xa], al
xor eax, eax
xor ecx, ecx
lea esp, [esp]
movsx edx, byte [ecx + edi]
add ecx, 2
xor eax, edx
cmp ecx, 0xa
jl 0x44f210
movsx edx, byte [ebx + 6]
movsx ecx, byte [ebx + 7]
xor ecx, edx
movsx edx, byte [ebx + 1]
xor ecx, edx
movsx edx, byte [ebx + 5]
xor ecx, edx
movsx edx, byte [ebx + 4]
xor ecx, edx
movsx edx, byte [ebx]
xor ecx, edx
movsx edx, byte [ebx + 3]
xor ecx, edx
movsx edx, byte [ebx + 2]
xor ecx, edx
xor eax, ecx
cmp eax, 0x30
jge 0x44f259
movsx eax, byte [ebx + 5]
add eax, 0x14
cmp eax, 0x7a
jle 0x44f265
movsx eax, byte [ebx + 2]
sub eax, 0xa
cmp eax, 0x30
jge 0x44f271
movsx eax, byte [ebx + 3]
add eax, 0x14
cmp eax, 0x7a
jle 0x44f27d
movsx eax, byte [ebx + 4]
sub eax, 0xa
cmp eax, 0x30
jl 0x44f287
cmp eax, 0x39
jle 0x44f2a0
cmp eax, 0x61
jl 0x44f291
cmp eax, 0x7a
jle 0x44f2a0
cmp eax, 0x41
jl 0x44f29b
cmp eax, 0x5a
jle 0x44f2a0
mov eax, 0x47
mov byte [ebx + 0xb], al
mov eax, edi
mov byte [ebx + 0xc], 0
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x44f2b0
sub eax, edx
mov edx, eax
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x44f2c2
sub eax, esi
lea eax, [eax + edx + 2]
push eax
call fcn.004eceb1
mov ebp, eax
mov esi, ebp
add esp, 4
mov ecx, edi
sub esi, edi
mov dl, byte [ecx]
mov byte [esi + ecx], dl
add ecx, 1
test dl, dl
jne 0x44f2e2
mov edi, ebp
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x44f2f3
mov cx, word [0x5459c0]
mov word [edi], cx
mov ecx, ebx
mov edx, ebx
jmp 0x44f310
mov al, byte [ecx]
add ecx, 1
test al, al
jne 0x44f310
sub ecx, edx
mov edi, ebp
mov ebx, ecx
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x44f322
mov ecx, ebx
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, ebp
pop ebp
pop ebx
pop edi
ret 8