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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10057ee1
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x1006a010]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x5a], dl
mov byte [ebp - 0x59], cl
mov al, byte [ebp + 0x20]
mov byte [ebp - 0x5b], al
mov dword [ebp - 0x60], 0
mov edx, str.RGBA
mov dword [ebp - 4], 0
mov ecx, 0x1006ad80
call fcn.10037de0
test al, al
je 0x100226e2
movzx eax, byte [0x100ec940]
push eax
mov eax, 0x580750
call eax
add esp, 4
mov ecx, 0x1006ad80
push 4
push str.RGBA
call fcn.10037420
mov eax, dword [0x1025c244]
test al, 1
jne 0x10022141
or eax, 1
mov dword [0x1025b6cc], 0x1006353c
mov dword [0x1025c244], eax
mov dword [0x1025b6d4], 0
mov dword [0x1025b6d0], 0
call fcn.1000c4c0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 4
push eax
push 0x40
mov esi, 0x582029
push 4
push esi
mov dword [ebp - 0x20], esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
setne byte [ebp - 0x14]
mov dword [esi], 3
cmp byte [ebp - 0x14], 0
je 0x10022188
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x60]
push ecx
push eax
push dword [ebp - 0x1c]
mov dword [ebp - 0x60], eax
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
mov eax, dword [0x1006b1b8]
inc eax
mov dword [ebp - 0x18], 0
push eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 0x60], 1
call fcn.10038e60
mov edx, dword [ebp - 0x14]
mov eax, edx
mov ecx, dword [ebp - 0x18]
sub eax, ecx
push 1
push 0x1006359c
cmp eax, 1
jb 0x100221eb
cmp edx, 0x10
lea esi, [ebp - 0x28]
lea eax, [ecx + 1]
cmovae esi, dword [ebp - 0x28]
add esi, ecx
mov dword [ebp - 0x18], eax
push esi
call fcn.1003ef40
add esp, 0xc
mov byte [esi + 1], 0
jmp 0x100221fc
mov byte [ebp - 0x64], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x64]
push 1
call fcn.10038840
push 0x1006b1a8
lea ecx, [ebp - 0x28]
call fcn.10037170
mov edx, dword [ebp - 0x14]
mov eax, edx
mov ecx, dword [ebp - 0x18]
sub eax, ecx
push 1
push 0x10063598
cmp eax, 1
jb 0x10022243
cmp edx, 0x10
lea esi, [ebp - 0x28]
lea eax, [ecx + 1]
cmovae esi, dword [ebp - 0x28]
add esi, ecx
mov dword [ebp - 0x18], eax
push esi
call fcn.1003ef40
add esp, 0xc
mov byte [esi + 1], 0
lea eax, [ebp - 0x28]
jmp 0x10022254
mov byte [ebp - 0x64], 0
lea ecx, [ebp - 0x28]
push dword [ebp - 0x64]
push 1
call fcn.10038840
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
movups xmm0, xmmword [eax]
mov dword [ebp - 0x60], 3
movups xmmword [ebp - 0x40], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x30], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 0x1006af38
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.10037170
mov ecx, 0x1006b3b8
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x58]
push eax
movq qword [ebp - 0x48], xmm0
call fcn.100372d0
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x10022300
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100222f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002272c
push edx
push ecx
call fcn.1003bfed
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x10022338
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002232e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022731
push edx
push ecx
call fcn.1003bfed
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 0x10
jb 0x10022382
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022378
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022736
push edx
push ecx
call fcn.1003bfed
add esp, 8
cmp dword [0x1006b3cc], 0x10
mov eax, 0x1006b3b8
push 1
cmovae eax, dword [0x1006b3b8]
push 1
push 1
push 2
sub esp, 0xc
mov dword [0x1013c9b0], eax
mov dword [esp + 8], 0x42480000
mov dword [esp + 4], 0x432a0000
mov dword [esp], 0x41e80000
push eax
push 0
mov eax, 0x582300
call eax
push 0xdc
movzx eax, al
mov esi, 0x582050
push 0
push eax
mov dword [0x100ec940], eax
call esi
movzx eax, byte [0x100ec940]
push 0x96
push 1
push eax
call esi
movzx edx, byte [ebp - 0x59]
lea ecx, [ebp - 0x58]
call fcn.1000c860
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.10037cf0
add esp, 0x40
mov ecx, 0x1006afb0
push eax
call fcn.100372d0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x10022449
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002243f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002273b
push edx
push ecx
call fcn.1003bfed
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 0x10
jb 0x10022493
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022489
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022740
push edx
push ecx
call fcn.1003bfed
add esp, 8
movzx edx, byte [ebp - 0x5a]
lea ecx, [ebp - 0x58]
call fcn.1000c860
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.10037cf0
add esp, 4
mov ecx, 0x1006af20
push eax
call fcn.100372d0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x100224ee
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100224e4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022745
push edx
push ecx
call fcn.1003bfed
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 0x10
jb 0x10022538
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002252e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002274a
push edx
push ecx
call fcn.1003bfed
add esp, 8
movzx edx, byte [ebp - 0x5b]
lea ecx, [ebp - 0x58]
call fcn.1000c860
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
call fcn.10037cf0
add esp, 4
mov ecx, 0x1006b370
push eax
call fcn.100372d0
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x10022593
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022589
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002274f
push edx
push ecx
call fcn.1003bfed
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp edx, 0x10
jb 0x100225dd
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100225d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022754
push edx
push ecx
call fcn.1003bfed
add esp, 8
cmp dword [0x1006afc4], 0x10
mov eax, 0x1006afb0
push str.DUMMY
cmovae eax, dword [0x1006afb0]
mov esi, 0x581e00
cmp dword [0x1006af34], 0x10
push str.DUMMY
push str.DUMMY
push str.DUMMY
push str.DUMMY
mov dword [0x1006ac54], eax
mov eax, 0x1006af20
cmovae eax, dword [0x1006af20]
cmp dword [0x1006b384], 0x10
push str.DUMMY
push str.DUMMY
push str.DUMMY
mov dword [0x1006aa88], eax
mov eax, 0x1006b370
cmovae eax, dword [0x1006b370]
cmp dword [ebp + 0x1c], 0x10
push str.RGBA
push str.RGBB
mov dword [0x1006a9d4], eax
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push str.RGBG
push str.RGBR
push eax
movzx eax, byte [0x100ec940]
push 0
push eax
call esi
push str.DUMMY
push str.DUMMY
push str.DUMMY
push str.DUMMY
movzx eax, byte [0x100ec940]
push str.DUMMY
push str.DUMMY
push str.DUMMY
push str.DUMMY
push str.DUMMY
push dword [0x1006a9d4]
push dword [0x1006aa88]
push dword [0x1006ac54]
push str.DUMMY
push 1
push eax
call esi
mov eax, dword [0xb7cb84]
add esp, 0x78
mov dword [0x1025b6c8], eax
mov byte [0x1006c842], 0xff
mov edx, dword [ebp + 0x1c]
cmp edx, 0x10
jb 0x10022712
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022708
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10022759
push edx
push ecx
call fcn.1003bfed
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003bfa7
mov esp, ebp
pop ebp
ret
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
call fcn.1004910a
int3