Function at 0x6b47d980
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x8c]
mov ecx, dword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x80]
mov ecx, dword [edx]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x98]
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], edi
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x24], eax
mov eax, dword [esi]
sub ecx, 8
mov esi, dword [esi + 4]
mov dword [esp + 0x40], ecx
test ebp, ebp
je 0x6b47db08
test ecx, ecx
js 0x6b47dad4
shr ecx, 3
mov edx, esi
mov dword [esp + 0x30], ecx
lea ecx, [ecx*8 + 8]
mov dword [esp + 0x34], ecx
lea ebp, [ebx + ecx]
lea ecx, [esp + 0x54]
mov dword [esp + 0x2c], ecx
lea esi, [esi]
mov esi, dword [edi]
xor esi, dword [esp + 0x18]
add ebx, 8
add edi, 8
xor eax, esi
mov ecx, dword [edi - 4]
mov dword [esp + 8], 1
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x28]
xor ecx, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
xor ecx, edx
mov dword [esp + 0x58], ecx
mov dword [esp], eax
call sym.libcrypto_1_1.dll_DES_encrypt1
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x54]
mov edx, eax
mov byte [ebx - 8], al
shr edx, 0x10
mov byte [ebx - 7], ah
mov byte [ebx - 6], dl
mov edx, eax
shr edx, 0x18
mov byte [ebx - 5], dl
mov edx, dword [esp + 0x24]
xor edx, dword [esp + 0x58]
mov ecx, edx
mov byte [ebx - 4], dl
shr ecx, 0x10
mov byte [ebx - 3], dh
mov byte [ebx - 2], cl
mov ecx, edx
shr ecx, 0x18
mov byte [ebx - 1], cl
cmp ebx, ebp
jne 0x6b47da30
mov esi, edx
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x88]
mov ecx, dword [esp + 0x34]
add dword [esp + 0x3c], ecx
neg edx
shl edx, 3
lea ecx, [edi + edx - 0x10]
add edx, dword [esp + 0x40]
mov dword [esp + 0x88], edx
cmp ecx, 0xfffffff8
je 0x6b47dd08
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x88], 7
lea ebp, [edi + ecx + 8]
ja case.0x6b47dafa.0
mov edi, dword [esp + 0x88]
jmp dword [edi*4 + 0x6b5dc520]
mov edx, dword [esp + 0x40]
test edx, edx
jle 0x6b47dc90
mov ecx, edi
mov edi, dword [esp + 0x88]
lea edx, [edi - 9]
shr edx, 3
lea edi, [edx*8 + 8]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], edi
add edi, ebx
mov dword [esp + 0x38], edi
lea edi, [esp + 0x54]
mov dword [esp + 0x2c], edi
mov edi, ecx
mov ecx, esi
lea esi, [esi]
mov edx, dword [esp + 0x20]
mov esi, eax
mov eax, dword [edi]
mov ebp, ecx
add ebx, 8
add edi, 8
xor edx, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x54], edx
mov ecx, dword [edi - 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov dword [esp + 8], 0
mov dword [esp], eax
xor edx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x58], edx
call sym.libcrypto_1_1.dll_DES_encrypt1
mov edx, dword [esp + 0x18]
xor edx, dword [esp + 0x54]
xor esi, edx
mov edx, dword [esp + 0x1c]
xor edx, dword [esp + 0x58]
xor edx, ebp
mov eax, esi
mov ebp, esi
mov ecx, dword [esp + 0x30]
mov byte [ebx - 8], al
shr ebp, 0x10
mov eax, esi
shr esi, 0x18
mov byte [ebx - 7], ah
mov eax, ebp
mov byte [ebx - 6], al
mov eax, esi
mov esi, edx
mov byte [ebx - 5], al
shr esi, 0x10
mov byte [ebx - 4], dl
mov eax, esi
mov byte [ebx - 3], dh
shr edx, 0x18
mov byte [ebx - 2], al
cmp ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov byte [ebx - 1], dl
jne 0x6b47db48
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x88]
mov esi, ecx
mov ecx, dword [esp + 0x48]
add dword [esp + 0x3c], ecx
neg edx
shl edx, 3
lea edi, [edi + edx - 0x10]
add edx, dword [esp + 0x40]
mov dword [esp + 0x88], edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
mov ebp, dword [eax]
xor edx, ebp
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov dword [esp + 8], 0
xor edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x58], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym.libcrypto_1_1.dll_DES_encrypt1
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
xor edx, dword [esp + 0x54]
xor ecx, dword [esp + 0x58]
xor eax, edx
lea edx, [ebx + edi + 8]
xor ecx, esi
cmp dword [esp + 0x88], 8
ja case.0x6b47dc82.0
mov edi, dword [esp + 0x88]
jmp dword [edi*4 + 0x6b5dc540]
cmp dword [esp + 0x40], 0xfffffff8
jne 0x6b47debb
mov edi, dword [esp + 0x44]
mov dword [edi], eax
mov dword [edi + 4], esi
mov eax, dword [esp + 0x5c]
xor eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
jne 0x6b47deb6
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, ecx
sub edx, 1
shr ebx, 0x18
mov byte [edx], bl
mov ebx, ecx
sub edx, 1
shr ebx, 0x10
mov byte [edx], bl
mov byte [edx - 1], ch
lea ebx, [edx - 1]
mov byte [ebx - 1], cl
lea edx, [ebx - 1]
mov ecx, eax
lea ebx, [edx - 1]
shr ecx, 0x18
mov byte [edx - 1], cl
mov edx, eax
lea ecx, [ebx - 1]
shr edx, 0x10
mov byte [ebx - 1], dl
mov byte [ecx - 1], ah
lea edx, [ecx - 1]
mov byte [edx - 1], al
mov esi, dword [esp + 0x20]
mov eax, ebp
jmp 0x6b47dc9b
mov edx, eax
movzx ebx, ah
mov edi, eax
shr eax, 0x18
shr edx, 0x10
mov dword [esp + 0x18], ebx
mov ebp, esi
mov byte [esp + 0x1c], dl
mov dword [esp + 0x20], eax
mov eax, esi
shr esi, 0x18
movzx ecx, ah
shr eax, 0x10
mov edx, dword [esp + 0x44]
mov ebx, edi
mov byte [edx], bl
movzx ebx, byte [esp + 0x18]
mov byte [edx + 6], al
mov eax, esi
mov byte [edx + 1], bl
movzx ebx, byte [esp + 0x1c]
mov byte [edx + 5], cl
mov byte [edx + 2], bl
movzx ebx, byte [esp + 0x20]
mov byte [edx + 7], al
mov byte [edx + 3], bl
mov ebx, ebp
mov byte [edx + 4], bl
jmp 0x6b47dca4
xor edi, edi
movzx ecx, byte [ebp - 1]
sub ebp, 1
shl ecx, 8
or edi, ecx
movzx ecx, byte [ebp - 1]
lea edx, [ebp - 1]
or ecx, edi
mov dword [esp + 0x2c], ecx
movzx edi, byte [edx - 1]
lea ebp, [edx - 1]
shl edi, 0x18
movzx edx, byte [ebp - 1]
lea ecx, [ebp - 1]
shl edx, 0x10
or edi, edx
movzx edx, byte [ecx - 1]
lea ebp, [ecx - 1]
shl edx, 8
or edx, edi
movzx edi, byte [ebp - 1]
or edx, edi
xor eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], 1
xor edx, eax
mov eax, dword [esp + 0x28]
xor esi, dword [esp + 0x1c]
xor ecx, esi
mov dword [esp + 0x54], edx
mov dword [esp + 4], eax
lea eax, [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 0x58], ecx
call sym.libcrypto_1_1.dll_DES_encrypt1
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x54]
movzx esi, ah
mov edx, eax
mov dword [ebx], eax
mov edi, eax
shr edx, 0x10
mov dword [esp + 0x18], esi
mov esi, eax
shr esi, 0x18
mov byte [esp + 0x1c], dl
mov edx, dword [esp + 0x24]
xor edx, dword [esp + 0x58]
mov dword [esp + 0x20], esi
mov eax, edx
mov esi, edx
mov dword [ebx + 4], edx
mov ebp, edx
shr eax, 0x10
movzx ecx, dh
shr esi, 0x18
jmp 0x6b47dd2e
mov dword [esp + 0x2c], 0
xor edx, edx
jmp 0x6b47dda5
mov dword [esp + 0x2c], 0
mov ecx, ebp
xor edi, edi
jmp 0x6b47dd99
mov dword [esp + 0x2c], 0
xor edi, edi
jmp 0x6b47dd8d
mov dword [esp + 0x2c], 0
mov edx, ebp
jmp 0x6b47dd83
xor edi, edi
jmp 0x6b47dd76
movzx ecx, byte [ebp - 1]
sub ebp, 1
mov edi, ecx
shl edi, 0x10
jmp 0x6b47dd6a
mov ecx, edx
jmp 0x6b47dcf2
mov ebx, edx
jmp 0x6b47dce7
mov ebx, edx
jmp 0x6b47dcd6
call sym.___stack_chk_fail
lea ecx, [esp + 0x54]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
jmp 0x6b47dc10
mov dword [esp + 0x2c], 0
xor edx, edx
jmp 0x6b47ddab
mov esi, dword [esp + 0x20]
mov eax, ebp
jmp 0x6b47dc9b