Function at 0x456100
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x6c
call fcn.005e38a0
mov eax, dword [0x6c6e10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
mov esi, edx
push edi
mov edi, ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x58], 1
test esi, esi
jne 0x456163
push 0x143
push str.....cryptoevpevp_lib.c
push 0x9f
push 0xa2
push 6
call fcn.004058f0
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 8]
mov dword [ebp - 0x64], eax
test eax, eax
js 0x456339
call fcn.004b00d0
mov ecx, eax
mov dword [ebp - 0x4c], ecx
test ecx, ecx
je 0x456339
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x5c], edx
test edi, edi
jne 0x45619e
mov edi, 0x69228b
mov dword [ebp + 8], 0
jmp 0x4561bc
cmp dword [ebp + 8], 0xffffffff
jne 0x4561bc
mov eax, edi
lea ebx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4561b0
sub eax, ebx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
push esi
push eax
push edi
xor edx, edx
call fcn.004afce0
add esp, 0xc
test eax, eax
je 0x456331
call fcn.004b00d0
mov ebx, eax
test ebx, ebx
je 0x456331
cmp dword [ebp + 0x18], 0
je 0x45634c
lea ecx, [ecx]
mov eax, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x64]
cmp eax, esi
jg 0x4561fc
mov esi, eax
mov eax, dword [ebp - 0x58]
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x10
mov byte [ebp - 0x50], cl
mov byte [ebp - 0x4f], dl
mov edx, dword [ebp - 0x4c]
mov ecx, eax
shr ecx, 8
push edx
mov edi, ebx
mov byte [ebp - 0x4e], cl
mov byte [ebp - 0x4d], al
call fcn.004b0340
add esp, 4
test eax, eax
je 0x45632a
cmp dword [ebx], 0
je 0x45632a
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebx + 4]
test ecx, ecx
je 0x456259
mov edx, dword [eax + 0x14]
push ecx
mov ecx, dword [ebp - 0x68]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
je 0x45632a
cmp dword [ebx], 0
je 0x45632a
mov eax, dword [ebx + 4]
mov edx, dword [eax + 0x14]
push 4
lea ecx, [ebp - 0x50]
push ecx
push eax
call edx
add esp, 0xc
test eax, eax
je 0x45632a
lea eax, [ebp - 0x48]
push eax
push ebx
xor ecx, ecx
call fcn.004aff80
add esp, 8
test eax, eax
je 0x45632a
mov edx, dword [ebp - 0x54]
push esi
lea ecx, [ebp - 0x48]
push ecx
push edx
call fcn.005e12d0
mov edi, 1
add esp, 0xc
mov dword [ebp - 0x60], edi
cmp dword [ebp + 0x14], edi
jle 0x456312
mov eax, dword [ebp - 0x4c]
push eax
mov edi, ebx
call fcn.004b0340
add esp, 4
test eax, eax
je 0x45632a
lea ecx, [ebp - 0x48]
push ecx
mov ecx, dword [ebp - 0x64]
push ebx
call fcn.004aff50
add esp, 8
test eax, eax
je 0x45632a
lea edx, [ebp - 0x48]
push edx
push ebx
xor ecx, ecx
call fcn.004aff80
add esp, 8
test eax, eax
je 0x45632a
test esi, esi
jle 0x456301
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x48]
sub ecx, eax
mov edi, esi
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec edi
jne 0x4562f8
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x60], eax
cmp eax, dword [ebp + 0x14]
jl 0x4562b1
mov edi, 1
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x58], edi
add dword [ebp - 0x54], esi
sub eax, esi
mov dword [ebp - 0x5c], eax
test eax, eax
jne 0x4561f0
jmp 0x456351
mov esi, ebx
call fcn.004b0170
mov esi, dword [ebp - 0x4c]
call fcn.004b0170
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret
mov edi, 1
mov esi, ebx
call fcn.004b0170
mov esi, dword [ebp - 0x4c]
call fcn.004b0170
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005dcf8a
mov esp, ebp
pop ebp
ret