Function at 0x1ffb8510
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
push ebx
push esi
push edi
push ebp
push 0
call dword [sym.imp.GDI32.dll_CreateMetaFileA]
mov edi, eax
test edi, edi
jne 0x1ffb8530
xor edi, edi
mov esi, dword [esp + 0x34]
jmp 0x1ffb85b4
mov esi, dword [esp + 0x34]
mov ebx, esi
test esi, esi
je 0x1ffb854a
cmp dword [esi + 4], 0
je 0x1ffb854a
xor eax, eax
mov ebx, dword [ebx + 4]
cmp dword [ebx + 4], eax
jne 0x1ffb8542
push 1
push edi
call dword [sym.imp.GDI32.dll_SetMapMode]
push 0
mov eax, dword [ebx + 0x114]
push eax
mov ecx, dword [ebx + 0x110]
push ecx
mov ebp, dword [sym.imp.GDI32.dll_SetWindowOrgEx]
push edi
call ebp
push 0
mov eax, dword [ebx + 0x11c]
sub eax, dword [ebx + 0x114]
push eax
mov eax, dword [ebx + 0x118]
sub eax, dword [ebx + 0x110]
push eax
push edi
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push eax
push edx
push 0
push 0
push esi
push 0
push edi
call fcn.1ffad950
push edi
call dword [sym.imp.GDI32.dll_CloseMetaFile]
mov edi, eax
test edi, edi
jne 0x1ffb85c7
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x14
test esi, esi
je 0x1ffb85db
cmp dword [esi + 4], 0
je 0x1ffb85db
xor eax, eax
mov esi, dword [esi + 4]
cmp dword [esi + 4], eax
jne 0x1ffb85d3
mov dword [esp + 0x14], 0x9ac6cdd7
xor ecx, ecx
mov word [esp + 0x18], cx
mov eax, dword [esi + 0x110]
mov word [esp + 0x1a], ax
mov edx, dword [esi + 0x114]
mov word [esp + 0x1c], dx
mov ebx, dword [esi + 0x118]
mov word [esp + 0x1e], bx
mov eax, dword [esi + 0x11c]
mov word [esp + 0x20], ax
mov dword [esp + 0x24], ecx
mov word [esp + 0x22], 0x60
mov word [esp + 0x28], cx
lea ecx, [esp + 0x14]
mov ax, word [ecx]
add ecx, 2
xor word [esp + 0x28], ax
lea edx, [esp + 0x28]
cmp ecx, edx
jb 0x1ffb862a
push 0
mov ebx, dword [sym.imp.GDI32.dll_GetMetaFileBitsEx]
push 0
push edi
call ebx
push eax
mov esi, eax
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1ffb867a
push edi
call dword [sym.imp.GDI32.dll_DeleteMetaFile]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x14
mov eax, dword [esp + 0x10]
push eax
push esi
push edi
call ebx
cmp dword [esp + 0x10], 0
jne 0x1ffb86a0
push edi
call dword [sym.imp.GDI32.dll_DeleteMetaFile]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x14
mov ebx, dword [esp + 0x30]
push 0x16
lea eax, [esp + 0x18]
push eax
push ebx
call dword [ebx + 4]
add esp, 0xc
cmp eax, 0x16
je 0x1ffb86e8
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x10]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 0xfffffffb
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x14
mov ebp, dword [esp + 0x10]
test esi, esi
je 0x1ffb8714
cmp esi, 0xfffe
mov edi, esi
jb 0x1ffb86ff
mov edi, 0xfffe
push edi
push ebp
push ebx
call dword [ebx + 4]
add esp, 0xc
cmp eax, edi
jne 0x1ffb8745
sub esi, edi
add ebp, edi
test esi, esi
jne 0x1ffb86f0
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x10]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x14
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalHandle]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x10]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 0xfffffffb
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 0x14