Function at 0x43b490
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 0x43b4a0
sub eax, edx
cmp eax, 8
jae 0x43b4d2
push 0x14
call fcn.00462d92
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 0x43b4ef
neg eax
test edx, edx
jns 0x43b4f7
add edx, eax
jmp 0x43b4f9
sub edx, eax
inc ecx
cmp ecx, 8
jl 0x43b4e0
test edx, edx
jns 0x43b505
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x43b512
cmp eax, 0x39
jle 0x43b550
cmp eax, 0x61
jl 0x43b51c
cmp eax, 0x7a
jle 0x43b550
cmp eax, 0x41
jl 0x43b526
cmp eax, 0x5a
jle 0x43b550
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x43b537
cmp eax, 0x39
jle 0x43b550
cmp eax, 0x61
jl 0x43b541
cmp eax, 0x7a
jle 0x43b550
cmp eax, 0x41
jl 0x43b54b
cmp eax, 0x5a
jle 0x43b550
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 0x43b592
movsx eax, byte [edi]
inc eax
cmp eax, 0x7a
jle 0x43b59c
movsx eax, byte [edi + 1]
inc eax
cmp eax, 0x30
jl 0x43b5a6
cmp eax, 0x39
jle 0x43b5bf
cmp eax, 0x61
jl 0x43b5b0
cmp eax, 0x7a
jle 0x43b5bf
cmp eax, 0x41
jl 0x43b5ba
cmp eax, 0x5a
jle 0x43b5bf
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 0x43b5df
neg eax
test ecx, ecx
jns 0x43b5e7
add ecx, eax
jmp 0x43b5e9
sub ecx, eax
inc esi
cmp esi, 8
jl 0x43b5d0
mov dword [ebp - 4], 2
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x43b606
neg eax
test ecx, ecx
jns 0x43b60e
add ecx, eax
jmp 0x43b610
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebx, byte [edx]
mov eax, esi
sub eax, ebx
jns 0x43b61f
neg eax
test ecx, ecx
jns 0x43b627
add ecx, eax
jmp 0x43b629
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x43b633
neg eax
test ecx, ecx
jns 0x43b63b
add ecx, eax
jmp 0x43b63d
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x43b647
neg eax
test ecx, ecx
jns 0x43b64f
add ecx, eax
jmp 0x43b651
sub ecx, eax
add edx, 4
dec dword [ebp - 4]
jne 0x43b5f6
test ecx, ecx
jns 0x43b65f
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x43b66c
cmp eax, 0x39
jle 0x43b6aa
cmp eax, 0x61
jl 0x43b676
cmp eax, 0x7a
jle 0x43b6aa
cmp eax, 0x41
jl 0x43b680
cmp eax, 0x5a
jle 0x43b6aa
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x43b691
cmp eax, 0x39
jle 0x43b6aa
cmp eax, 0x61
jl 0x43b69b
cmp eax, 0x7a
jle 0x43b6aa
cmp eax, 0x41
jl 0x43b6a5
cmp eax, 0x5a
jle 0x43b6aa
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 0x43b6b7
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 0x43b700
movsx eax, byte [ebx + 5]
add eax, 0x14
cmp eax, 0x7a
jle 0x43b70c
movsx eax, byte [ebx + 2]
sub eax, 0xa
cmp eax, 0x30
jge 0x43b718
movsx eax, byte [ebx + 3]
add eax, 0x14
cmp eax, 0x7a
jle 0x43b724
movsx eax, byte [ebx + 4]
sub eax, 0xa
cmp eax, 0x30
jl 0x43b72e
cmp eax, 0x39
jle 0x43b747
cmp eax, 0x61
jl 0x43b738
cmp eax, 0x7a
jle 0x43b747
cmp eax, 0x41
jl 0x43b742
cmp eax, 0x5a
jle 0x43b747
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 0x43b753
sub eax, edx
mov edx, eax
mov eax, ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43b763
sub eax, esi
lea eax, [eax + edx + 2]
push eax
call fcn.00462d92
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 0x43b780
lea edi, [eax - 1]
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x43b790
mov cx, word [0x4b3c6c]
mov word [edi], cx
mov ecx, ebx
mov edx, ebx
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x43b7a6
sub ecx, edx
mov ebx, ecx
lea edi, [eax - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x43b7b4
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