Function at 0x1012a660
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x1022bc48]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [0x1022909c]
mov edx, dword [0x102290a0]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x31d0684
add ecx, eax
xor eax, eax
sub eax, ecx
mov esi, 0xffffffff
xor esi, 0xf45fde6d
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xf45fde6d
or eax, 0xf45fde6d
imul eax, edx
add eax, ecx
and eax, 0x5aa658ad
add eax, 0x8d0ff3e3
imul eax, eax, 0x8c932fdd
mov ecx, 0x13693155
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xf9d00ea2
xor eax, 0xffffffff
and eax, 0xf9d00ea2
shl eax, 1
sub eax, 0xf9d00ea2
sub ecx, eax
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xd69bc868
or eax, edx
mov edx, 0xffffffff
xor edx, 0xd69bc868
mov esi, 0xffffffff
xor esi, 0xd69bc868
or edx, esi
and ecx, edx
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0xd99684ff
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xde8014ce
mov eax, 0xffffffff
xor eax, 0x9459f30f
or ecx, edx
or eax, 0x9459f30f
xor ecx, 0xffffffff
and ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov dword [ebp - 0x28], eax
mov esi, 0xffffffff
xor esi, 0x7cfc9695
mov edx, 0xffffffff
xor edx, 0x8489846f
and eax, 0x8489846f
and ecx, edx
mov edi, esi
and edi, 0x8489846f
mov ebx, edx
and ebx, 0x7cfc9695
or eax, ecx
mov ecx, dword [ebp - 0x28]
or edi, ebx
xor eax, edi
or ecx, esi
xor ecx, 0xffffffff
or edx, 0x8489846f
and ecx, edx
or eax, ecx
imul eax, eax, 0x55f91cb8
mov edx, 0xffffffff
xor edx, 0xb56b190
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xb56b190
add eax, edx
sub eax, ecx
mov ecx, 0xf8eb3fc1
xor edx, edx
div ecx
xor eax, 0x8d8a64e0
or eax, 0x28a656fc
imul eax, eax, 0xa8e28ed
mov ecx, eax
and ecx, 0xfc247c05
shl ecx, 1
xor eax, 0xfc247c05
add eax, ecx
imul ecx, eax, 0x7bca50d9
or ecx, 0xcada1782
sub ecx, 0xb12ebbec
add ecx, 0xdab7d776
add ecx, 0xb12ebbec
add ecx, 0xf6110b4
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x1d4883c5
or eax, edx
and ecx, 0x1d4883c5
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
imul eax, eax, 0xe00b81d
mov ecx, 0xdc35c238
xor edx, edx
div ecx
sub eax, 0xb96619db
sub eax, 0x2c73abc6
add eax, 0xb96619db
sub eax, 0x150c20d5
sub eax, 0xdb3322e8
add eax, 0x150c20d5
mov edx, eax
xor edx, 0xffffffff
and edx, 0xcde8a492
mov esi, 0xffffffff
xor esi, 0xcde8a492
mov ecx, eax
and ecx, esi
imul ecx, edx
mov edx, eax
and edx, 0xcde8a492
or eax, 0xcde8a492
imul eax, edx
add eax, ecx
and eax, 0xebad2410
mov esi, 0xffffffff
xor esi, 0xe285428b
mov edx, eax
and edx, esi
mov ecx, eax
or ecx, esi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xe285428b
or eax, 0xe285428b
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov dword [ebp - 0x24], ecx
mov esi, 0xffffffff
xor esi, 0xc742c4f6
mov edx, 0xffffffff
xor edx, 0xc1b68241
and ecx, 0xc1b68241
and eax, edx
mov edi, esi
and edi, 0xc1b68241
mov ebx, edx
and ebx, 0xc742c4f6
or ecx, eax
mov eax, dword [ebp - 0x24]
or edi, ebx
xor ecx, edi
or eax, esi
xor eax, 0xffffffff
or edx, 0xc1b68241
and eax, edx
or ecx, eax
mov eax, ecx
xor eax, 0x713dcc26
mov edx, 0xffffffff
xor edx, 0x713dcc26
and ecx, edx
shl ecx, 1
sub ecx, eax
sub ecx, 0x6fea22b5
mov eax, ecx
and eax, 0x9313237e
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x9313237e
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov dword [ebp - 0x14], 0x27dd986a
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x18], ecx
mov ecx, 0x7440780b
xor edx, edx
div ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x38], eax
sub eax, 0xb370e30c
je 0x1012ab19
jmp 0x1012a9a3
mov eax, dword [ebp - 0x38]
sub eax, 0x6d244cc
je 0x1012ab2b
jmp 0x1012a9b6
mov eax, dword [ebp - 0x38]
sub eax, 0x1519a4fc
je 0x1012aa01
jmp 0x1012a9c9
mov eax, dword [ebp - 0x38]
sub eax, 0x27dd986a
je 0x1012a9e1
jmp 0x1012a9dc
jmp 0x1012ac3f
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov ecx, 0x1519a4fc
mov edx, 0x6d244cc
cmp esi, 0xc583149c
cmova ecx, edx
mov dword [eax], ecx
jmp 0x1012ac3f
mov ebx, dword [ebp - 0x34]
mov esi, 0x1400001
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov ecx, esp
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x40], edx
push eax
mov edx, esp
mov dword [ebp - 0x3c], edx
push eax
mov edi, esp
push eax
mov edx, esp
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x48]
mov dword [edx], ebx
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov dword [ecx], ebx
mov dword [eax], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x4c], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x4c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x40]
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 5
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
call fcn.10111b00
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
mov eax, dword [ebx]
mov dword [0x1022d0a4], eax
mov eax, dword [ebp - 0x40]
mov bl, byte [ebx + 4]
mov byte [0x1022d0a8], bl
mov byte [edi], 0xe9
mov edx, dword [edx]
mov ebx, dword [eax]
add ebx, 5
xor ebx, 0xffffffff
add edx, ebx
add edx, 1
mov dword [ecx], edx
mov edx, dword [eax]
mov bl, byte [edi]
mov byte [edx], bl
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [eax + 1], ecx
call fcn.10111b00
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
mov edx, dword [edx]
sub esp, 0x10
mov dword [esp], edx
dec eax
add eax, ebp
sub dh, byte [eax - 2]
dec dword [ebx + 0x458bc055]
les ecx, [ebx - 0x7ced74f8]
in al, dx
adc byte [ecx + 0x44c72414], cl
and al, 4
add eax, 0x89000000
dec esp
and al, 8
mov dword [esp + 4], 5
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp - 0x1c]
mov ecx, 0xb370e30c
mov edx, 0x1519a4fc
cmp esi, 0xacb7d10f
cmove ecx, edx
mov dword [eax], ecx
jmp 0x1012ac3f
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10206a28
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ebp - 0x30]
insd dword es:[edi], dx
mov cl, 0xf5
bound ecx, qword [edx + 0x4a4cfd83]
in eax, dx
xor al, 0xe
jno 0x1012aae6
wait
sub byte [ecx + 0x50596a6d], 0x89
jecxz 0x1012aacf
pop ebp
movsb byte es:[edi], byte [esi]
push eax
mov ecx, esp
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x54], edx
push eax
mov edx, esp
mov dword [ebp - 0x50], edx
push eax
mov esi, esp
push eax
mov edx, esp
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x34]
mov dword [ebx], edx
mov edx, dword [ebp - 0x2c]
mov dword [ecx], edi
mov dword [eax], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x60], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x60]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x54]
mov edx, eax
mov eax, dword [ebp - 0x50]
mov dword [ecx], edx
mov ecx, dword [ecx]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 5
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
call fcn.10111b00
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x54]
mov edi, dword [eax]
mov ebx, dword [edi]
mov dword [0x1022d0a4], ebx
mov bl, byte [edi + 4]
mov byte [0x1022d0a8], bl
mov byte [esi], 0xe9
mov edx, dword [edx]
mov edi, dword [eax]
add edi, 5
sub edx, 0x70d086df
sub edx, edi
add edx, 0x70d086df
mov dword [ecx], edx
mov edx, dword [eax]
mov bl, byte [esi]
mov byte [edx], bl
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [eax + 1], ecx
call fcn.10111b00
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
mov edx, dword [edx]
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], 5
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0x1519a4fc
jmp 0x1012a98d