Function at 0x4f3c88
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405a60
xor eax, eax
push ebp
push 0x4f3f90
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.gdi32.dll_DeleteColorSpace
push edi
sub edi, 0x1a9
and edi, 0x185
xor edi, 0x78
push edi
pop edi
mov edi, 0x1d
push edi
pop edi
pop edi
lea eax, [ebp - 8]
xor edx, edx
call fcn.00405acc
push edi
or edi, 0x15a
mov edi, 0xe
push edi
pop edi
inc edi
pop edi
call sub.kernel32.dll_GetCurrentProcessId
push edi
inc edi
add edi, 0x4a
nop
nop
nop
nop
add edi, 0x98
nop
nop
and edi, 0x13d
dec edi
push edi
pop edi
or edi, 0x4c
and edi, 0x87
sub edi, 0x57
xor edi, 0x10c
nop
nop
dec edi
xchg edi, edi
pop edi
mov dl, 1
mov eax, dword [0x422cb4]
call fcn.00428150
mov dword [ebp - 0x14], eax
push ebx
push ecx
xchg ebx, ecx
sub ebx, 0x2f
dec ebx
xor ecx, 0x97
nop
nop
nop
nop
nop
xchg ebx, ebx
and ebx, 0x197
xchg ecx, ecx
push ebx
pop ebx
and ecx, 0x10b
dec ebx
mov ebx, 0x115
pop ecx
pop ebx
push 1
call sub.user32.dll_GetListBoxInfo
push eax
push eax
pop eax
mov eax, 0x104
add eax, 0xef
push eax
pop eax
mov eax, 0x9a
or eax, 0x193
add eax, 0x89
or eax, 0x20
sub eax, 0x12e
pop eax
mov dx, 0x20
mov eax, dword [ebp - 0x14]
call fcn.00427764
push 1
call sub.user32.dll_GetListBoxInfo
push eax
push eax
pop eax
mov eax, 0x104
add eax, 0xef
push eax
pop eax
mov eax, 0x9a
or eax, 0x193
add eax, 0x89
or eax, 0x20
sub eax, 0x12e
pop eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
call fcn.00427528
push 0x4f3fa0
call sub.kernel32.dll_GlobalAddAtomW
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4f3f25
inc ebx
xor esi, esi
push 1
call sub.gdi32.dll_DeleteColorSpace
push edi
sub edi, 0x1a9
and edi, 0x185
xor edi, 0x78
push edi
pop edi
mov edi, 0x1d
push edi
pop edi
pop edi
lea ecx, [ebp - 0x18]
mov edx, esi
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x18]
call fcn.0040c030
mov edi, eax
push ebx
sub ebx, 0x112
push ebx
pop ebx
xchg ebx, ebx
sub ebx, 0x1b
dec ebx
pop ebx
call sub.kernel32.dll_GetTickCount
push edx
push ecx
push edx
pop edx
and ecx, 0x98
mov edx, pe_nt_image_headers32
xor edx, 0x16
mov ecx, 0x107
or ecx, 0x26
and edx, 0x197
mov ecx, 0xa1
xchg ecx, ecx
and edx, 0x35
add ecx, 0x180
xchg ecx, ecx
pop ecx
pop edx
lea eax, [ebp - 0x1c]
mov edx, edi
add dx, word [ebp - 0xc]
call fcn.00405be4
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 8]
call fcn.00405d9c
push 1
call sub.kernel32.dll_SetErrorMode
push esi
push ebx
xor esi, 0xcc
xor ebx, 0xe6
nop
nop
nop
nop
or esi, 0xf9
inc esi
and ebx, 0x4b
dec esi
dec esi
or ebx, 0xe5
pop ebx
pop esi
push 1
call sub.gdi32.dll_DeleteColorSpace
push edi
sub edi, 0x1a9
and edi, 0x185
xor edi, 0x78
push edi
pop edi
mov edi, 0x1d
push edi
pop edi
pop edi
call sub.kernel32.dll_GetTickCount
push edx
push ecx
push edx
pop edx
and ecx, 0x98
mov edx, pe_nt_image_headers32
xor edx, 0x16
mov ecx, 0x107
or ecx, 0x26
and edx, 0x197
mov ecx, 0xa1
xchg ecx, ecx
and edx, 0x35
add ecx, 0x180
xchg ecx, ecx
pop ecx
pop edx
inc esi
dec ebx
jne 0x4f3dfc
push 1
call sub.user32.dll_IsWindow
push edi
nop
nop
nop
nop
nop
sub edi, 0x9a
mov edi, 0xd8
sub edi, 0x193
dec edi
mov edi, 0x72
add edi, 0xd9
mov edi, 0x7f
xchg edi, edi
or edi, 0xd3
pop edi
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00405a78
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f3f97
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00405a70
lea eax, [ebp - 8]
mov edx, 2
call fcn.00405a70
ret