Function at 0x4168b0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x507138
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x65d4c0]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov dword [esp + 0x1c], ecx
xor ebx, ebx
lea edi, [ecx + 0x50]
mov dword [ecx + 0x44], ebx
mov dword [ecx + 0x4c], ebx
mov dword [edi + 8], ebx
call fcn.00428690
mov ebp, eax
mov esi, dword [ebp + 0x1c]
cmp esi, ebx
je 0x416b8c
push esi
mov ecx, edi
call fcn.00404770
mov dword [edi + 8], esi
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov esi, dword [ebp]
mov edi, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp]
test esi, esi
je 0x416930
cmp esi, eax
je 0x416935
call fcn.004cf82e
cmp edi, ebx
je 0x4169af
test esi, esi
jne 0x41698a
call fcn.004cf82e
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x41694e
call fcn.004cf82e
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x18]
add eax, 0x50
mov eax, dword [eax]
mov dword [eax + edx*4], ecx
test esi, esi
jne 0x41698e
call fcn.004cf82e
cmp edi, dword [esi + 0x18]
jne 0x416979
call fcn.004cf82e
mov edi, dword [edi + 0x10]
mov eax, dword [edi + 8]
test eax, eax
jne 0x416992
mov eax, 4
jmp 0x416995
mov eax, dword [esi]
jmp 0x416944
mov esi, dword [esi]
jmp 0x41696f
mov eax, dword [eax + 8]
add dword [esp + 0x18], eax
lea ecx, [esp + 0x24]
call fcn.00428b00
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
jmp 0x416922
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x17]
mov dword [edx + 0x4c], eax
push ecx
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x34]
call fcn.00451920
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov esi, dword [ebp]
mov edi, eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebp]
test esi, esi
je 0x4169f5
cmp esi, eax
je 0x4169fa
call fcn.004cf82e
cmp edi, ebx
je 0x416aa5
test esi, esi
jne 0x416a96
call fcn.004cf82e
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x416a1b
call fcn.004cf82e
mov eax, dword [edi + 0x10]
cmp dword [eax + 8], 0
je 0x416a45
test esi, esi
jne 0x416a9d
call fcn.004cf82e
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x416a39
call fcn.004cf82e
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 8]
test byte [edx + 0x18], 1
jne 0x416a80
test esi, esi
jne 0x416aa1
call fcn.004cf82e
cmp edi, dword [esi + 0x18]
jne 0x416a58
call fcn.004cf82e
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + edx*4]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x1c], edx
call fcn.004127a0
mov dword [eax], 0
lea ecx, [esp + 0x24]
call fcn.00428b00
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
jmp 0x4169e7
mov eax, dword [esi]
jmp 0x416a11
mov eax, dword [esi]
jmp 0x416a2f
mov esi, dword [esi]
jmp 0x416a4e
mov eax, dword [esp + 0x48]
test eax, eax
je 0x416b7b
mov esi, dword [esp + 0x1c]
lea ecx, [eax + eax*2]
lea edx, [ecx*4 + 1]
add esi, 0x40
push edx
mov ecx, esi
call fcn.0041b000
mov eax, dword [esp + 0x44]
mov ebp, dword [eax]
mov edi, dword [esp + 0x2c]
mov esi, dword [esi]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ebp
mov edi, edi
mov ebx, dword [esp + 0x44]
test edi, edi
je 0x416aee
cmp edi, dword [esp + 0x2c]
je 0x416af3
call fcn.004cf82e
cmp ebp, ebx
je 0x416b48
mov byte [esi], 0x8d
mov byte [esi + 1], 0x83
test edi, edi
jne 0x416b44
call fcn.004cf82e
cmp ebp, dword [edi + 0x18]
jne 0x416b11
call fcn.004cf82e
mov ecx, dword [ebp + 0xc]
mov dword [esi + 2], ecx
add esi, 6
mov byte [esi], 0x50
inc esi
mov edx, fcn.004298d0
sub edx, esi
sub edx, 5
mov byte [esi], 0xe8
mov dword [esi + 1], edx
lea ecx, [esp + 0x24]
add esi, 5
call fcn.00428b00
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jmp 0x416ae0
mov edi, dword [edi]
jmp 0x416b07
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x20]
push edx
mov byte [esi], 0xc3
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x40]
push 0x40
lea esi, [edi + 0x40]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [edi + 0x44]
mov ecx, dword [esi]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x58], 0xffffffff
call fcn.00411aa0
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret