Function at 0x457db0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov esi, edx
mov edi, ecx
call fcn.0048fec0
mov ebx, dword [ebp + 8]
mov edx, edi
mov edi, eax
mov dword [ebp - 4], eax
push ebx
push esi
mov ecx, edi
call fcn.00457d80
push 0
push str.SoftwareSimonTathamPuTTYSshHostKeys
push SysReAllocString
push 0
push 0
call fcn.00490f10
add esp, 0x1c
mov dword [ebp - 8], eax
test eax, eax
je 0x457fcb
mov edx, dword [edi]
mov ecx, eax
call fcn.004910d0
mov esi, eax
mov dword [ebp - 0xc], esi
test esi, esi
jne 0x457f6f
mov ecx, 0x4e5c58
mov al, byte [ebx]
cmp al, byte [ecx]
jne 0x457e33
test al, al
je 0x457e2f
mov al, byte [ebx + 1]
cmp al, byte [ecx + 1]
jne 0x457e33
add ebx, 2
add ecx, 2
test al, al
jne 0x457e13
xor eax, eax
jmp 0x457e38
sbb eax, eax
or eax, 1
test eax, eax
jne 0x457f6f
push 0x4e0d28
push dword [edi]
call fcn.004a50e0
mov edx, dword [edi]
add esp, 8
mov ecx, dword [ebp - 8]
inc edx
add edx, eax
call fcn.004910d0
mov ebx, eax
mov dword [ebp - 0x14], ebx
test ebx, ebx
je 0x457f68
call fcn.0048fec0
mov edi, ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 2
lea ebx, [eax + 0xc]
nop dword [eax]
push 2
push 0x4ebb24
mov ecx, ebx
call fcn.0048f3e0
push 0x4e9f30
push edi
call fcn.004a50e0
mov esi, eax
add esp, 0x10
cdq
and edx, 3
add eax, edx
lea ecx, [esi - 1]
sar eax, 2
xor ecx, 3
mov dword [ebp - 0x18], eax
cmp byte [ecx + edi], 0x30
jne 0x457ec8
cmp esi, 1
jle 0x457ec8
dec esi
lea eax, [esi - 1]
xor eax, 3
cmp byte [eax + edi], 0x30
je 0x457eb6
test esi, esi
jle 0x457ee4
nop dword [eax]
dec esi
mov ecx, ebx
mov edx, esi
xor edx, 3
mov dl, byte [edx + edi]
call fcn.0048f460
test esi, esi
jg 0x457ed0
mov eax, dword [ebp - 0x18]
cmp byte [edi + eax*4], 0
lea edi, [edi + eax*4]
je 0x457efa
mov dl, 0x2c
mov ecx, ebx
inc edi
call fcn.0048f460
sub dword [ebp - 0x10], 1
jne 0x457e80
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebx]
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x457f30
test dl, dl
je 0x457f2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x457f30
add eax, 2
add ecx, 2
test dl, dl
jne 0x457f10
xor eax, eax
jmp 0x457f35
sbb eax, eax
or eax, 1
test eax, eax
jne 0x457f58
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 8]
push esi
mov edx, dword [edi]
call fcn.00491180
add esp, 4
mov ecx, ebx
call fcn.0048ff10
mov esi, eax
mov dword [ebp - 0xc], esi
jmp 0x457f65
mov ecx, ebx
call fcn.0048fee0
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
call fcn.00490070
mov ecx, dword [ebp - 8]
call fcn.00490fc0
test esi, esi
je 0x457fc4
mov edx, dword [ebp + 0xc]
mov eax, esi
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x457fa0
test cl, cl
je 0x457f9c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x457fa0
add eax, 2
add edx, 2
test cl, cl
jne 0x457f80
xor esi, esi
jmp 0x457fa5
sbb esi, esi
or esi, 1
mov ecx, dword [ebp - 0xc]
call fcn.00490070
mov ecx, edi
call fcn.0048fee0
neg esi
sbb esi, esi
and esi, 2
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00490070
mov ecx, edi
call fcn.0048fee0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret