Function at 0x65d20c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbd4
push ebx
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
call fcn.00604afc
xor eax, eax
push ebp
push 0x65d5ed
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetLastError
push esi
xor esi, 0x13b
xchg esi, esi
push esi
pop esi
or esi, 0x159
xor esi, 0x3e
add esi, 0x15c
xchg esi, esi
push esi
pop esi
add esi, 0x8a
pop esi
mov dl, 1
mov eax, dword [0x612638]
call fcn.00603804
mov dword [ebp - 0x10], eax
push 1
call sub.user32.dll_GetKeyboardType_1
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 4]
call sub.user32.dll_GetKBCodePage
push esi
or esi, 0x69
push esi
pop esi
xor esi, 0xe
xor esi, 0x5e
mov esi, 0x9b
inc esi
or esi, 1
add esi, 0x178
xor esi, 0x150
sub esi, 0x154
pop esi
push 0
push 0
mov eax, dword [ebp - 0x10]
call fcn.00616158
push 1
call sub.kernel32.dll_SetLastError
push eax
push ebx
sub eax, 0x45
and ebx, 0x83
push ebx
pop ebx
xchg ebx, ebx
push ebx
pop ebx
add eax, 0x163
nop
nop
nop
nop
dec ebx
pop ebx
pop eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.00616158
push 0x65d600
call sub.kernel32.dll_AddAtomA
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x654880]
call fcn.00654c0c
mov dword [ebp - 0x18], eax
call sub.kernel32.dll_GetLastError
push esi
xor esi, 0x13b
xchg esi, esi
push esi
pop esi
or esi, 0x159
xor esi, 0x3e
add esi, 0x15c
xchg esi, esi
push esi
pop esi
add esi, 0x8a
pop esi
xor eax, eax
push ebp
push 0x65d528
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.user32.dll_DestroyCaret
push ebx
push esi
sub ebx, 0x28
dec ebx
mov esi, 2
inc esi
mov ebx, 0xe7
inc ebx
or esi, 0x115
mov esi, 0x114
add esi, 0x3d
xor ebx, 0x109
pop esi
pop ebx
lea edx, [ebp - 0x42c]
mov ecx, 0x400
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [ebp - 0x1c], eax
push ecx
push eax
add ecx, 0x16
nop
add eax, 0xba
mov eax, 5
or ecx, 0xa3
dec ecx
inc ecx
and eax, 0xa5
dec ecx
nop
nop
nop
and ecx, 0x19a
xchg ecx, eax
pop eax
pop ecx
cmp dword [ebp - 0x1c], 0
jle 0x65d4bd
call sub.user32.dll_GetKBCodePage
push esi
or esi, 0x69
push esi
pop esi
xor esi, 0xe
xor esi, 0x5e
mov esi, 0x9b
inc esi
or esi, 1
add esi, 0x178
xor esi, 0x150
sub esi, 0x154
pop esi
lea edx, [ebp - 0x42c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.0061639c
call sub.user32.dll_DestroyCaret
push edi
xchg edi, edi
mov edi, 0x39
dec edi
mov edi, 0x14c
inc edi
and edi, 0x71
inc edi
push edi
pop edi
dec edi
nop
nop
nop
and edi, 0x8d
pop edi
push ebx
push esi
sub ebx, 0x28
dec ebx
mov esi, 2
inc esi
mov ebx, 0xe7
inc ebx
or esi, 0x115
mov esi, 0x114
add esi, 0x3d
xor ebx, 0x109
pop esi
pop ebx
lea edx, [ebp - 0x42c]
mov ecx, 0x400
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [ebp - 0x1c], eax
push ecx
push eax
add ecx, 0x16
nop
add eax, 0xba
mov eax, 5
or ecx, 0xa3
dec ecx
inc ecx
and eax, 0xa5
dec ecx
nop
nop
nop
and ecx, 0x19a
xchg ecx, eax
pop eax
pop ecx
push 1
call sub.user32.dll_GetDlgCtrlID
push 1
call sub.kernel32.dll_SetLastError
push eax
push ebx
sub eax, 0x45
and ebx, 0x83
push ebx
pop ebx
xchg ebx, ebx
push ebx
pop ebx
add eax, 0x163
nop
nop
nop
nop
dec ebx
pop ebx
pop eax
cmp dword [ebp - 0x1c], 0
jg 0x65d3bd
push 1
call sub.kernel32.dll_FlushConsoleInputBuffer
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x65d52f
call sub.kernel32.dll_GetLastError
push esi
xor esi, 0x13b
xchg esi, esi
push esi
pop esi
or esi, 0x159
xor esi, 0x3e
add esi, 0x15c
xchg esi, esi
push esi
pop esi
add esi, 0x8a
pop esi
mov eax, dword [ebp - 0x18]
call fcn.00603834
push 1
call sub.kernel32.dll_SetLastError
push eax
push ebx
sub eax, 0x45
and ebx, 0x83
push ebx
pop ebx
xchg ebx, ebx
push ebx
pop ebx
add eax, 0x163
nop
nop
nop
nop
dec ebx
pop ebx
pop eax
ret