Function at 0x47fac8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbf4
push ebx
push esi
mov esi, edx
mov ebx, eax
mov eax, dword [ebp + 8]
call fcn.00405b10
xor eax, eax
push ebp
push 0x47feaa
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetUserDefaultLCID
mov dl, 1
mov eax, dword [0x42331c]
call fcn.00403bec
mov dword [ebp - 8], eax
push eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push eax
pop eax
nop
nop
nop
nop
nop
sub eax, 0x11b
mov eax, 0x149
sub eax, 0x143
xor eax, 0xc9
pop eax
call sub.kernel32.dll_GetUserDefaultLCID
mov edx, esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 4]
call sub.kernel32.dll_GetUserDefaultLCID
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.00428414
push edi
or edi, 0xd7
xor edi, 0x1a4
xor edi, 0x146
mov edi, 0xc1
sub edi, 0x144
sub edi, 0x80
push edi
pop edi
xchg edi, edi
xor edi, 0x81
inc edi
pop edi
call sub.kernel32.dll_GetUserDefaultLCID
push 0
push 0
mov eax, dword [ebx]
call fcn.00428414
call sub.kernel32.dll_GetCurrentThread
push esi
push eax
dec esi
dec eax
add esi, 0x12
and eax, 0x18
inc esi
xor eax, 0x62
and eax, 0x1a4
sub eax, 0x19
xor esi, 0xa6
mov eax, 0x2e
nop
nop
xchg esi, eax
add eax, 0x154
and esi, 0x8d
inc esi
pop eax
pop esi
mov ecx, dword [ebx]
mov dl, 1
mov eax, dword [0x4771c8]
call fcn.0047756c
mov dword [ebp - 0xc], eax
push 1
call sub.user32.dll_GetLastActivePopup
xor eax, eax
push ebp
push 0x47fd84
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.user32.dll_IsZoomed
push edx
push eax
mov edx, 0x147
xchg edx, edx
add eax, 0x92
sub edx, 0x104
push edx
pop edx
pop eax
pop edx
lea edx, [ebp - 0x40c]
mov ecx, 0x400
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, eax
push edi
mov edi, 0xb6
push edi
pop edi
xor edi, 0x89
push edi
pop edi
sub edi, 0x12a
push edi
pop edi
mov edi, 0x10d
xor edi, 0x22
xchg edi, edi
pop edi
test ebx, ebx
jle 0x47fcdd
call sub.kernel32.dll_GetUserDefaultLCID
lea edx, [ebp - 0x40c]
mov ecx, ebx
mov eax, dword [ebp - 8]
call fcn.00428680
push 1
call sub.user32.dll_IsZoomed
push edx
push eax
mov edx, 0x147
xchg edx, edx
add eax, 0x92
sub edx, 0x104
push edx
pop edx
pop eax
pop edx
lea edx, [ebp - 0x40c]
mov ecx, 0x400
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, eax
push edi
mov edi, 0xb6
push edi
pop edi
xor edi, 0x89
push edi
pop edi
sub edi, 0x12a
push edi
pop edi
mov edi, 0x10d
xor edi, 0x22
xchg edi, edi
pop edi
push 1
call sub.user32.dll_IsZoomed
push edx
push eax
mov edx, 0x147
xchg edx, edx
add eax, 0x92
sub edx, 0x104
push edx
pop edx
pop eax
pop edx
call sub.kernel32.dll_GetUserDefaultLCID
test ebx, ebx
jg 0x47fc45
call sub.kernel32.dll_GetCurrentThread
push esi
push eax
dec esi
dec eax
add esi, 0x12
and eax, 0x18
inc esi
xor eax, 0x62
and eax, 0x1a4
sub eax, 0x19
xor esi, 0xa6
mov eax, 0x2e
nop
nop
xchg esi, eax
add eax, 0x154
and esi, 0x8d
inc esi
pop eax
pop esi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47fd8b
call sub.kernel32.dll_GetCurrentThread
push esi
push eax
dec esi
dec eax
add esi, 0x12
and eax, 0x18
inc esi
xor eax, 0x62
and eax, 0x1a4
sub eax, 0x19
xor esi, 0xa6
mov eax, 0x2e
nop
nop
xchg esi, eax
add eax, 0x154
and esi, 0x8d
inc esi
pop eax
pop esi
mov eax, dword [ebp - 0xc]
call fcn.00403c1c
push eax
push edx
xchg edx, edx
and edx, 0x2c
inc eax
xor eax, 0x17d
sub eax, 0x127
add eax, 0x92
sub eax, 0x120
pop edx
pop eax
call sub.kernel32.dll_GetUserDefaultLCID
ret