Function at 0x10048e45
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
movsx ecx, word [ebp + 0xc]
sub esp, 0x44
push esi
cmp ecx, 0x20
ja case.0x10048d6b.3
movzx eax, byte [ecx + 0x10049168]
jmp dword [eax*4 + 0x10049148]
mov dword [ebp - 0x16], 0x48b0484
xor ecx, ecx
mov dword [ebp - 0x12], 0x4bf04bf
mov dword [ebp - 0xe], 0x4a204b8
mov dword [ebp - 0xa], 0x4a0
mov byte [ebp - 6], 1
lea eax, [ecx + 0x4c8]
xor word [ebp + ecx*2 - 0x16], ax
inc ecx
cmp ecx, 7
jb 0x10048d94
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x16]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10048dc6
lea eax, [ebp - 0x16]
jmp 0x10049130
mov dword [ebp - 0x16], 0x48b049a
xor ecx, ecx
mov dword [ebp - 0x12], 0x4bf04bf
mov dword [ebp - 0xe], 0x4a204b8
mov dword [ebp - 0xa], 0x4a0
mov byte [ebp - 6], 1
nop dword [eax + eax]
lea eax, [ecx + 0x4c8]
xor word [ebp + ecx*2 - 0x16], ax
inc ecx
cmp ecx, 7
jb 0x10048e00
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x16]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10048e32
lea eax, [ebp - 0x16]
jmp 0x10049130
mov dword [ebp - 0x16], 0x48b0485
xor ecx, ecx
mov dword [ebp - 0x12], 0x4bf04bf
mov dword [ebp - 0xe], 0x4a204b8
mov dword [ebp - 0xa], 0x4a0
mov byte [ebp - 6], 1
nop word [eax + eax]
lea eax, [ecx + 0x4c8]
xor word [ebp + ecx*2 - 0x16], ax
inc ecx
cmp ecx, 7
jb 0x10048e70
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x16]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10048ea2
lea eax, [ebp - 0x16]
jmp 0x10049130
xor eax, eax
mov dword [ebp - 0x18], 0x48b0490
mov dword [ebp - 0x14], 0x4bf04bf
xor ecx, ecx
mov dword [ebp - 0x10], 0x4a204b8
mov dword [ebp - 0xc], 0x4fe04a0
mov word [ebp - 8], ax
mov byte [ebp - 6], 1
nop dword [eax]
lea eax, [ecx + 0x4c8]
xor word [ebp + ecx*2 - 0x18], ax
inc ecx
cmp ecx, 8
jb 0x10048ee0
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x18]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10048f12
lea eax, [ebp - 0x18]
jmp 0x10049130
xor eax, eax
mov dword [ebp - 0x18], 0x48b0490
mov dword [ebp - 0x14], 0x4bf04bf
xor ecx, ecx
mov dword [ebp - 0x10], 0x4a204b8
mov dword [ebp - 0xc], 0x4fd04a0
mov word [ebp - 8], ax
mov byte [ebp - 6], 1
nop dword [eax]
lea eax, [ecx + 0x4c8]
xor word [ebp + ecx*2 - 0x18], ax
inc ecx
cmp ecx, 8
jb 0x10048f50
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x18]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10048f82
lea eax, [ebp - 0x18]
jmp 0x10049130
mov dword [ebp - 0x12], 0x4b80494
xor ecx, ecx
mov dword [ebp - 0xe], 0x4a904a8
mov dword [ebp - 0xa], 0x4ae
mov byte [ebp - 6], 1
lea eax, [ecx + 0x4c7]
xor word [ebp + ecx*2 - 0x12], ax
inc ecx
cmp ecx, 5
jb 0x10048fb0
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x12]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10048fe2
lea eax, [ebp - 0x12]
jmp 0x10049130
xor eax, eax
mov dword [ebp - 0x10], 0x4a70489
mov dword [ebp - 0xc], 0x4af04a7
xor ecx, ecx
mov word [ebp - 8], ax
mov byte [ebp - 6], 1
nop
lea eax, [ecx + 0x4c7]
xor word [ebp + ecx*2 - 0x10], ax
inc ecx
cmp ecx, 4
jb 0x10049010
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x10]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10049042
lea eax, [ebp - 0x10]
jmp 0x10049130
push 0x10
lea eax, [ebp - 0x44]
xorps xmm0, xmm0
push eax
push 0
push ecx
movups xmmword [ebp - 0x44], xmm0
movups xmmword [ebp - 0x34], xmm0
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextW]
test eax, eax
je 0x100490b3
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x44]
xorps xmm0, xmm0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100490a0
lea eax, [ebp - 0x44]
jmp 0x10049130
mov dword [ebp - 0x22], 0x4830491
xor ecx, ecx
mov dword [ebp - 0x1e], 0x49904fb
mov dword [ebp - 0x1a], 0x49e049f
mov dword [ebp - 0x16], 0x4880492
mov dword [ebp - 0x12], 0x499048e
mov dword [ebp - 0xe], 0x497049d
mov dword [ebp - 0xa], 0x497
mov byte [ebp - 6], 1
nop word [eax + eax]
lea eax, [ecx + 0x4c7]
xor word [ebp + ecx*2 - 0x22], ax
inc ecx
cmp ecx, 0xd
jb 0x100490f0
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x22]
xorps xmm0, xmm0
mov byte [ebp - 6], 0
lea edx, [ecx + 2]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10049122
lea eax, [ebp - 0x22]
sub ecx, edx
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.1000e1d0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 8