Function at 0x43b450
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
mov edi, dword [ebp + 0xc]
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b460
sub eax, edx
cmp eax, 8
jae 0x43b492
push 0x14
call fcn.00462d52
mov ecx, dword [0x4b771c]
mov dword [eax], ecx
mov dx, word [0x4b7720]
add esp, 4
mov word [eax + 4], dx
pop edi
mov esp, ebp
pop ebp
ret 8
push ebx
push esi
mov esi, dword [ebp + 8]
xor edx, edx
mov ecx, 1
mov edi, edi
movsx ebx, byte [ecx + esi - 1]
movsx eax, byte [ecx + esi]
sub eax, ebx
jns 0x43b4af
neg eax
test edx, edx
jns 0x43b4b7
add edx, eax
jmp 0x43b4b9
sub edx, eax
inc ecx
cmp ecx, 8
jl 0x43b4a0
test edx, edx
jns 0x43b4c5
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x43b4d2
cmp eax, 0x39
jle 0x43b510
cmp eax, 0x61
jl 0x43b4dc
cmp eax, 0x7a
jle 0x43b510
cmp eax, 0x41
jl 0x43b4e6
cmp eax, 0x5a
jle 0x43b510
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x43b4f7
cmp eax, 0x39
jle 0x43b510
cmp eax, 0x61
jl 0x43b501
cmp eax, 0x7a
jle 0x43b510
cmp eax, 0x41
jl 0x43b50b
cmp eax, 0x5a
jle 0x43b510
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 0x43b552
movsx eax, byte [edi]
inc eax
cmp eax, 0x7a
jle 0x43b55c
movsx eax, byte [edi + 1]
inc eax
cmp eax, 0x30
jl 0x43b566
cmp eax, 0x39
jle 0x43b57f
cmp eax, 0x61
jl 0x43b570
cmp eax, 0x7a
jle 0x43b57f
cmp eax, 0x41
jl 0x43b57a
cmp eax, 0x5a
jle 0x43b57f
mov eax, 0x52
mov byte [edi + 9], al
xor ecx, ecx
mov esi, 1
lea esp, [esp]
movsx ebx, byte [esi + edi - 1]
movsx eax, byte [esi + edi]
sub eax, ebx
jns 0x43b59f
neg eax
test ecx, ecx
jns 0x43b5a7
add ecx, eax
jmp 0x43b5a9
sub ecx, eax
inc esi
cmp esi, 8
jl 0x43b590
mov dword [ebp - 4], 2
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x43b5c6
neg eax
test ecx, ecx
jns 0x43b5ce
add ecx, eax
jmp 0x43b5d0
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebx, byte [edx]
mov eax, esi
sub eax, ebx
jns 0x43b5df
neg eax
test ecx, ecx
jns 0x43b5e7
add ecx, eax
jmp 0x43b5e9
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x43b5f3
neg eax
test ecx, ecx
jns 0x43b5fb
add ecx, eax
jmp 0x43b5fd
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x43b607
neg eax
test ecx, ecx
jns 0x43b60f
add ecx, eax
jmp 0x43b611
sub ecx, eax
add edx, 4
dec dword [ebp - 4]
jne 0x43b5b6
test ecx, ecx
jns 0x43b61f
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x43b62c
cmp eax, 0x39
jle 0x43b66a
cmp eax, 0x61
jl 0x43b636
cmp eax, 0x7a
jle 0x43b66a
cmp eax, 0x41
jl 0x43b640
cmp eax, 0x5a
jle 0x43b66a
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x43b651
cmp eax, 0x39
jle 0x43b66a
cmp eax, 0x61
jl 0x43b65b
cmp eax, 0x7a
jle 0x43b66a
cmp eax, 0x41
jl 0x43b665
cmp eax, 0x5a
jle 0x43b66a
mov eax, 0x6e
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov byte [ebx + 0xa], al
xor eax, eax
xor ecx, ecx
movsx edx, byte [ecx + edi]
add ecx, 2
xor eax, edx
cmp ecx, 0xa
jl 0x43b677
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 0x43b6c0
movsx eax, byte [ebx + 5]
add eax, 0x14
cmp eax, 0x7a
jle 0x43b6cc
movsx eax, byte [ebx + 2]
sub eax, 0xa
cmp eax, 0x30
jge 0x43b6d8
movsx eax, byte [ebx + 3]
add eax, 0x14
cmp eax, 0x7a
jle 0x43b6e4
movsx eax, byte [ebx + 4]
sub eax, 0xa
cmp eax, 0x30
jl 0x43b6ee
cmp eax, 0x39
jle 0x43b707
cmp eax, 0x61
jl 0x43b6f8
cmp eax, 0x7a
jle 0x43b707
cmp eax, 0x41
jl 0x43b702
cmp eax, 0x5a
jle 0x43b707
mov eax, 0x47
mov byte [ebx + 0xb], al
mov eax, edi
mov byte [ebx + 0xc], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b713
sub eax, edx
mov edx, eax
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b723
sub eax, esi
lea eax, [eax + edx + 2]
push eax
call fcn.00462d52
mov esi, eax
add esp, 4
mov ecx, edi
sub esi, edi
nop
mov dl, byte [ecx]
mov byte [esi + ecx], dl
inc ecx
test dl, dl
jne 0x43b740
lea edi, [eax - 1]
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x43b750
mov cx, word [0x4b3c6c]
mov word [edi], cx
mov ecx, ebx
mov edx, ebx
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x43b766
sub ecx, edx
mov ebx, ecx
lea edi, [eax - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x43b774
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
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 8