Function at 0x215b942c
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.21554d44
xor eax, eax
push ebp
push 0x215b982b
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x215b983c
call sub.kernel32.dll_AddAtomA
mov dl, 1
mov eax, dword [0x21562c38]
call fcn.21553a4c
mov dword [ebp - 0x10], eax
push edi
push ebx
inc ebx
push edi
pop edi
xor edi, 0xbd
and edi, 0x127
mov edi, 0xc6
sub edi, 0x111
xchg edi, edi
or ebx, 0x65
pop ebx
pop edi
push 1
call sub.gdi32.dll_EndDoc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 4]
push esi
dec esi
push esi
pop esi
add esi, 0x5d
nop
nop
add esi, 0x46
mov esi, 0x44
xor esi, 0x2a
pop esi
call sub.kernel32.dll_GetCurrentThreadId_1
push 0
push 0
mov eax, dword [ebp - 0x10]
call fcn.215668d8
push ecx
push edx
mov edx, 0xb2
or ecx, 0x14e
nop
nop
nop
nop
push edx
pop edx
push edx
pop edx
xchg edx, edx
dec ecx
sub edx, 0x2f
inc ecx
nop
nop
nop
nop
nop
mov ecx, 0x18a
and ecx, 0x151
or edx, 0x76
pop edx
pop ecx
call sub.kernel32.dll_GetUserDefaultLCID
push ebx
push eax
inc eax
sub ebx, 0x19e
and ebx, 0xb7
xor eax, 0xa9
add ebx, 0x23
dec eax
mov eax, 0x164
pop eax
pop ebx
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.215668d8
push 1
call sub.gdi32.dll_EndDoc
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x215b0aa0]
call fcn.215b0e2c
mov dword [ebp - 0x18], eax
push ebx
sub ebx, 0x3c
add ebx, 0x45
xchg ebx, ebx
xchg ebx, ebx
dec ebx
mov ebx, 0x10b
nop
nop
xchg ebx, ebx
xchg ebx, ebx
push ebx
pop ebx
mov ebx, 0x74
or ebx, 0xee
pop ebx
push 1
call sub.gdi32.dll_EndDoc
xor eax, eax
push ebp
push 0x215b970d
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetLastError_1
push eax
inc eax
inc eax
nop
nop
nop
nop
nop
mov eax, 0xbe
and eax, 0x11
or eax, 0x19c
and eax, 0x18b
or eax, 0x23
and eax, 0xf8
push eax
pop eax
add eax, 0x46
nop
and eax, 0x19c
pop eax
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
cmp dword [ebp - 0x1c], 0
jle 0x215b96be
push 1
call sub.gdi32.dll_GetObjectType
push edx
push ebx
or edx, 0x50
sub ebx, 0x103
or ebx, 0x197
push ebx
pop ebx
pop ebx
pop edx
lea edx, [ebp - 0x42c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.21566b1c
call sub.kernel32.dll_GetLastError_1
push eax
inc eax
inc eax
nop
nop
nop
nop
nop
mov eax, 0xbe
and eax, 0x11
or eax, 0x19c
and eax, 0x18b
or eax, 0x23
and eax, 0xf8
push eax
pop eax
add eax, 0x46
nop
and eax, 0x19c
pop eax
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 1
call sub.gdi32.dll_GetObjectType
push edx
push ebx
or edx, 0x50
sub ebx, 0x103
or ebx, 0x197
push ebx
pop ebx
pop ebx
pop edx
push 1
call sub.user32.dll_OpenIcon
push ecx
nop
nop
xchg ecx, ecx
sub ecx, 0x5f
dec ecx
and ecx, 0x6d
nop
nop
nop
nop
nop
pop ecx
push ebx
inc ebx
xor ebx, 0x10f
dec ebx
add ebx, 0xd2
dec ebx
add ebx, 0xad
push ebx
pop ebx
xor ebx, 0xef
add ebx, 0x1c
xchg ebx, ebx
xor ebx, 0x46
sub ebx, 0x180
dec ebx
xchg ebx, ebx
pop ebx
cmp dword [ebp - 0x1c], 0
jg 0x215b95d9
push 1
call sub.gdi32.dll_DeleteColorSpace
push esi
and esi, 0x27
xor esi, 0x18e
inc esi
dec esi
push esi
pop esi
inc esi
push esi
pop esi
pop esi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x215b9714
push 1
call sub.gdi32.dll_EndDoc
mov eax, dword [ebp - 0x18]
call fcn.21553a7c
push 1
call sub.user32.dll_OpenIcon
push ecx
nop
nop
xchg ecx, ecx
sub ecx, 0x5f
dec ecx
and ecx, 0x6d
nop
nop
nop
nop
nop
pop ecx
ret