Function at 0x6b45f1e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [esp + 0x4c], esi
xor esi, esi
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x80]
lea edx, [esi - 8]
mov dword [esp + 0x2c], ebp
mov edi, dword [eax + 4]
mov esi, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x30], edx
bswap edi
bswap esi
test eax, eax
je 0x6b45f318
test edx, edx
js 0x6b45f2eb
shr edx, 3
lea ecx, [esp + 0x44]
lea eax, [edx*8 + 8]
mov dword [esp + 0x24], edx
mov edx, edi
mov dword [esp + 0x20], eax
add eax, ebx
mov dword [esp + 0x1c], eax
mov eax, esi
mov esi, ecx
nop
mov edi, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp], esi
add ebx, 8
add ebp, 8
bswap edi
xor eax, edi
bswap ecx
xor edx, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov dword [esp + 4], eax
call sym.libcrypto_1_1.dll_CAST_encrypt
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ecx, eax
mov byte [ebx - 6], ah
shr ecx, 0x18
mov byte [ebx - 5], al
mov byte [ebx - 8], cl
mov ecx, eax
shr ecx, 0x10
mov byte [ebx - 2], dh
mov byte [ebx - 7], cl
mov ecx, edx
shr ecx, 0x18
mov byte [ebx - 4], cl
mov ecx, edx
shr ecx, 0x10
mov byte [ebx - 3], cl
mov byte [ebx - 1], dl
cmp ebx, dword [esp + 0x1c]
jne 0x6b45f260
mov esi, eax
mov eax, dword [esp + 0x24]
mov edi, edx
mov edx, dword [esp + 0x20]
add dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
neg eax
shl eax, 3
lea edx, [edx + eax - 0x10]
add eax, dword [esp + 0x30]
mov dword [esp + 0x78], eax
cmp edx, 0xfffffff8
je 0x6b45f5a0
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x78], 7
lea eax, [eax + edx + 8]
ja case.0x6b45f30b.0
mov edx, dword [esp + 0x78]
jmp dword [edx*4 + 0x6b5d4dd8]
mov eax, edx
test edx, edx
js 0x6b45f5d0
shr eax, 3
mov dword [esp + 0x3c], eax
lea eax, [eax*8 + 8]
mov dword [esp + 0x38], eax
add eax, ebx
mov dword [esp + 0x24], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x28], eax
lea esi, [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], esi
add ebx, 8
add ebp, 8
mov esi, dword [ebp - 8]
mov dword [esp + 0x1c], edi
mov edi, dword [ebp - 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
bswap esi
mov dword [esp + 0x44], esi
bswap edi
mov dword [esp + 0x48], edi
mov dword [esp], eax
call sym.libcrypto_1_1.dll_CAST_decrypt
mov edx, dword [esp + 0x20]
xor edx, dword [esp + 0x44]
mov ecx, edx
mov eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x48]
mov byte [ebx - 6], dh
shr ecx, 0x18
mov byte [ebx - 5], dl
mov byte [ebx - 8], cl
mov ecx, edx
mov edx, eax
shr edx, 0x18
mov byte [ebx - 2], ah
shr ecx, 0x10
mov byte [ebx - 4], dl
mov edx, eax
mov byte [ebx - 7], cl
shr edx, 0x10
mov byte [ebx - 3], dl
mov byte [ebx - 1], al
cmp dword [esp + 0x24], ebx
jne 0x6b45f348
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
neg eax
shl eax, 3
lea ebp, [edx + eax - 0x10]
add eax, dword [esp + 0x30]
mov dword [esp + 0x78], eax
cmp ebp, 0xfffffff8
je 0x6b45f495
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x44]
lea ebx, [ebx + ebp + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], edx
bswap eax
mov dword [esp + 0x48], eax
bswap ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
mov dword [esp + 4], eax
mov dword [esp + 0x20], ecx
call sym.libcrypto_1_1.dll_CAST_decrypt
xor esi, dword [esp + 0x44]
xor edi, dword [esp + 0x48]
cmp dword [esp + 0x78], 7
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x20]
ja case.0x6b45f440.0
mov esi, dword [esp + 0x78]
jmp dword [esi*4 + 0x6b5d4df8]
mov edx, edi
sub ebx, 1
mov byte [ebx], dh
mov esi, edi
sub ebx, 1
shr esi, 0x10
mov edx, esi
mov byte [ebx], dl
shr edi, 0x18
lea esi, [ebx - 1]
mov edx, edi
mov byte [ebx - 1], dl
movzx edx, byte [esp + 0x18]
lea ebx, [esi - 1]
mov byte [esi - 1], dl
mov edx, dword [esp + 0x18]
lea esi, [ebx - 1]
mov byte [ebx - 1], dh
mov edi, edx
shr edi, 0x10
lea ebx, [esi - 1]
mov edx, edi
mov byte [esi - 1], dl
mov edx, dword [esp + 0x18]
mov edi, eax
mov esi, ecx
shr edx, 0x18
mov byte [ebx - 1], dl
mov eax, dword [esp + 0x34]
bswap esi
bswap edi
mov dword [eax], esi
mov dword [eax + 4], edi
mov eax, dword [esp + 0x4c]
xor eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
jne 0x6b45f653
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
xor edx, edx
movzx ecx, byte [eax - 1]
sub eax, 1
shl ecx, 0x10
or ecx, edx
lea edx, [eax - 1]
movzx eax, byte [eax - 1]
shl eax, 0x18
or eax, ecx
xor edi, eax
lea eax, [edx - 1]
movzx edx, byte [edx - 1]
movzx ecx, byte [eax - 1]
lea ebp, [eax - 1]
shl ecx, 8
or ecx, edx
movzx edx, byte [ebp - 1]
lea eax, [ebp - 1]
shl edx, 0x10
or ecx, edx
movzx edx, byte [eax - 1]
shl edx, 0x18
or edx, ecx
xor esi, edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edi
mov dword [esp + 4], eax
lea eax, [esp + 0x44]
mov dword [esp], eax
call sym.libcrypto_1_1.dll_CAST_encrypt
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov ecx, eax
mov edx, eax
mov byte [esp + 0x1c], al
movzx ebp, ah
shr ecx, 0x18
mov esi, edi
bswap edx
mov dword [ebx], edx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov eax, edi
bswap esi
movzx eax, ah
mov dword [esp + 0x24], esi
mov edx, edi
shr ecx, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
shr edx, 0x18
mov esi, edx
mov edx, edi
mov dword [ebx + 4], eax
shr edx, 0x10
mov eax, dword [esp + 0x34]
movzx ebx, byte [esp + 0x18]
mov byte [eax + 1], cl
mov ecx, ebp
mov byte [eax], bl
mov ebx, eax
mov byte [eax + 2], cl
movzx eax, byte [esp + 0x1c]
mov byte [ebx + 5], dl
mov byte [ebx + 3], al
mov eax, esi
mov byte [ebx + 4], al
movzx eax, byte [esp + 0x20]
mov byte [ebx + 6], al
mov eax, edi
mov byte [ebx + 7], al
jmp 0x6b45f4a2
mov eax, esi
mov edx, edi
shr eax, 0x18
shr edx, 0x10
mov dword [esp + 0x18], eax
mov eax, esi
shr eax, 0x10
mov ecx, eax
mov eax, esi
mov byte [esp + 0x1c], al
movzx ebp, ah
mov eax, edi
shr eax, 0x18
mov esi, eax
mov eax, edi
movzx eax, ah
mov dword [esp + 0x20], eax
jmp 0x6b45f569
mov ebp, edx
jmp 0x6b45f3df
xor ecx, ecx
jmp 0x6b45f4fb
mov ebp, eax
xor ecx, ecx
jmp 0x6b45f4ef
xor edx, edx
jmp 0x6b45f4e3
mov edx, eax
jmp 0x6b45f4dc
xor ecx, ecx
jmp 0x6b45f4ce
movzx ecx, byte [eax - 1]
sub eax, 1
mov edx, ecx
shl edx, 8
jmp 0x6b45f4c2
mov edi, dword [esp + 0x18]
mov esi, ebx
jmp 0x6b45f47c
mov esi, ebx
jmp 0x6b45f465
call sym.___stack_chk_fail
mov edi, eax
mov esi, ecx
jmp 0x6b45f495