Function at 0x10007280
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x10017130
push 0x1000ca21
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x100190b4]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
push eax
xor eax, eax
mov eax, 0xc
pop eax
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
jmp 0x10007347
push 6
push 0x6ae00
push 0x1002f4b8
call fcn.10006a70
add esp, 0xc
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
push eax
xor eax, eax
mov eax, 0xc
pop eax
push eax
xor eax, eax
setnp al
push edx
xor edx, eax
shl edx, 2
xchg edx, eax
pop edx
or eax, ecx
pop eax
jmp 0x100073ec
cmp byte [0x1009c836], 0
jne 0x1000746f
jmp 0x1000745b
call 0x10005080
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [0x1009c836], 1
jmp 0x100074d5
call 0x100063b0
jmp 0x10007540
push 0xfa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100075b1
jmp 0x10007617
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
nop dword [eax]
push 0x100154f0
call edi
mov esi, eax
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x10007620
xor ecx, ecx
lea edx, [esi + 0x128000]
cmp esi, edx
jae 0x1000766b
mov al, byte [esi]
cmp al, byte [ecx + 0x10015a4c]
je 0x10007658
cmp byte [ecx + str.xx____xx____xx], 0x3f
je 0x10007658
xor ecx, ecx
jmp 0x10007666
cmp byte [ecx + 0x10015a3d], 0
je 0x10007746
inc ecx
inc esi
cmp esi, edx
jb 0x10007641
mov esi, 2
mov esi, dword [esi]
mov ecx, 0x59
call fcn.100062d0
mov ecx, 0x39
call fcn.100062d0
mov esi, dword [esi + 0xa8]
mov dword [ebp - 0x38], esi
mov dword [0x1009c8cc], esi
mov dword [ebp - 0x28], 0x580ff3
mov dword [ebp - 0x24], 0x364
mov byte [ebp - 0x20], 0xf3
mov edi, dword [0x1009c90c]
test edi, edi
jne 0x10007705
mov dword [ebp - 0x34], 0x36707f7e
mov dword [ebp - 0x30], 0x32337372
mov word [ebp - 0x2c], 0x76
mov byte [ebp - 0x2a], 1
xor eax, eax
nop dword [eax + eax]
lea ecx, [eax + 6]
xor byte [ebp + eax - 0x34], cl
inc eax
cmp eax, 9
jb 0x100076d0
mov byte [ebp - 0x2a], 0
lea eax, [ebp - 0x34]
push eax
lea edx, [ebp - 0x28]
call fcn.10004dd0
add esp, 4
mov edi, eax
mov dword [0x1009c90c], edi
test edi, edi
je 0x100076b1
mov esi, dword [0x1009c8cc]
mov dword [ebp - 0x38], esi
lea ecx, [edi + 8]
mov dword [0x1009c814], ecx
test esi, esi
je 0x100077c8
xor ebx, ebx
lea ecx, [esi + ebx]
call fcn.10004640
add ebx, eax
cmp ebx, 5
jb 0x10007718
cmp byte [esi], 0xe8
jne 0x1000774e
mov ecx, dword [esi + 1]
add ecx, 5
add ecx, esi
mov eax, 0x10006d50
sub eax, esi
sub eax, 5
mov dword [esi + 1], eax
jmp 0x100077ca
add esi, 0xfffffff5
jmp 0x10007670
lea edi, [ebx + 5]
push 0x40
push 0x1000
push edi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x44]
push eax
push 0x40
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
call esi
push 0
push 0x40
push edi
mov edi, dword [ebp - 0x3c]
push edi
call esi
mov esi, dword [ebp - 0x38]
cmp byte [esi], 0xe9
jne 0x1000779c
mov eax, dword [esi + 1]
add eax, 5
add eax, esi
mov byte [edi], 0xe9
sub eax, edi
sub eax, 5
mov dword [edi + 1], eax
jmp 0x100077a7
push ebx
push esi
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + edi], 0xe9
mov eax, esi
sub eax, edi
sub eax, 5
mov dword [ebx + edi + 1], eax
mov ecx, esi
call fcn.10006c10
mov edi, dword [0x1009c90c]
mov ecx, dword [ebp - 0x3c]
jmp 0x100077ca
xor ecx, ecx
mov dword [0x1009c918], ecx
mov ecx, edi
call fcn.10006c10
jmp 0x1000783d
mov ecx, str.123456FVX
call fcn.1000a350
jmp 0x100078ad
jmp 0x10007913
mov ecx, 0x100144b4
call fcn.1000a350
jmp 0x10007983
mov ecx, str.CODE
call fcn.1000a350
jmp 0x100079f3
mov ecx, 0x100144bc
call fcn.1000a350
jmp 0x10007a63
mov ecx, 0x100144c0
call fcn.1000a350
jmp 0x10007ad3
mov edx, dword [0x1009bf30]
mov ecx, 0x100144b4
call fcn.1000a460
jmp 0x10007b49
mov edx, dword [0x1009c82c]
mov edx, dword [edx]
mov ecx, str.CODE
call fcn.1000a460
mov edx, dword [0x1009c86c]
mov ecx, 0x10015934
call fcn.1000a460
mov edx, dword [0x1009c924]
mov ecx, 0x1001594c
call fcn.1000a460
mov edx, dword [0x1009c900]
mov ecx, 0x10015a64
call fcn.1000a460
mov edx, dword [0x1009c8d8]
mov ecx, 0x10015a68
call fcn.1000a460
mov edx, dword [0x1009c930]
mov ecx, 0x10015a6c
call fcn.1000a460
mov edx, dword [0x1009c868]
mov ecx, 0x10015a70
call fcn.1000a460
mov edx, dword [0x1009c8e0]
mov ecx, 0x10015a74
call fcn.1000a460
mov edx, dword [0x1009c91c]
mov ecx, 0x10015a78
call fcn.1000a460
mov edx, 0x1888
mov ecx, 0x10015a7c
call fcn.1000a460
mov ecx, dword [0x1009c928]
test ecx, ecx
jne 0x10007c12
mov eax, dword [0x1009a92c]
mov eax, dword [eax]
test eax, eax
je 0x10007c12
mov eax, dword [eax - 0x20]
test eax, eax
je 0x10007c12
add eax, 0x24
cmovne ecx, eax
mov dword [0x1009c928], ecx
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov eax, dword [0x1009c8dc]
test eax, eax
je 0x10007cf2
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10007cf2
cmp word [0x1009c8de], bx
je 0x10007cf2
xor edi, edi
mov dword [ebp - 0x3c], edi
cmp edi, 0x1000
jge 0x10007cf2
mov dword [ebp - 4], 0
mov edx, dword [edi + eax]
test edx, edx
je 0x10007cc2
mov eax, edx
shr eax, 0x10
test eax, eax
je 0x10007cbf
mov eax, dword [0x1009c924]
mov eax, dword [eax + edx]
cmp eax, 0x20
je 0x10007c78
cmp eax, 0x21
jne 0x10007cbf
mov eax, dword [0x1009c8e8]
mov esi, dword [eax + edx]
mov ecx, dword [0x1009c928]
mov eax, dword [0x1009c908]
mov eax, dword [eax + ecx]
inc eax
cmp esi, eax
jne 0x10007cb2
mov dword [0x1009c910], edx
mov ecx, 0x100144bc
call fcn.1000a460
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x38]
add edi, 4
jmp 0x10007c40
imul eax, ebx, 0x2c
mov dword [eax + 0x1009a930], edx
inc ebx
mov dword [ebp - 0x40], ebx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], 0xfffffffe
add edi, 4
jmp 0x10007c40
mov edx, ebx
mov ecx, str.123456FVX
call fcn.1000a460
jmp 0x10007d64
mov edx, 0x1009a930
mov ecx, 0x100144c0
call fcn.1000a460
jmp 0x10007dd9
mov edx, 0x1009ff44
mov ecx, 0x10015938
call fcn.1000a460
jmp 0x10007e4e
mov edx, 0x1009c904
mov ecx, 0x1001593c
call fcn.1000a460
jmp 0x10007ec3
jmp 0x10007f29
mov edx, 0x1009c907
mov ecx, 0x10015940
call fcn.1000a460
mov edx, 0x1009c837
mov ecx, 0x10015944
call fcn.1000a460
jmp 0x10007fad
mov edx, 0x1009c906
mov ecx, 0x10015948
call fcn.1000a460
call fcn.100065c0
jmp 0x10008027
mov ecx, str.123456FVX
call fcn.1000a350
jmp 0x10008097
jmp 0x100080fd
mov ecx, 0x100144b4
call fcn.1000a350
jmp 0x1000816d
mov ecx, str.CODE
call fcn.1000a350
jmp 0x100081dd
mov ecx, 0x100144bc
call fcn.1000a350
jmp 0x1000824d
mov ecx, 0x100144c0
call fcn.1000a350
jmp 0x100082bd
mov ecx, 0x10015934
call fcn.1000a350
mov ecx, 0x1001594c
call fcn.1000a350
mov ecx, 0x10015a64
call fcn.1000a350
mov ecx, 0x10015a68
call fcn.1000a350
mov ecx, 0x10015a6c
call fcn.1000a350
mov ecx, 0x10015a70
call fcn.1000a350
mov ecx, 0x10015a74
call fcn.1000a350
mov ecx, 0x10015a78
call fcn.1000a350
mov ecx, 0x10015a7c
call fcn.1000a350
mov ecx, 0x10015938
call fcn.1000a350
mov ecx, 0x1001593c
call fcn.1000a350
mov ecx, 0x1001594c
call fcn.1000a350
mov ecx, 0x10015940
call fcn.1000a350
mov ecx, 0x10015944
call fcn.1000a350
mov ecx, 0x10015948
call fcn.1000a350
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100077d7