Function at 0x45e860
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x563450
push 0x51bf78
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov ebx, edx
mov dword [ebp - 0x38], ebx
mov edi, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 4], 0
mov esi, dword [ebp + 8]
mov dword [0x5a61bc], esi
cmp esi, 0x64
jne 0x45e8d0
push 0
push str.LG_1
push 0xb
call fcn.00454e70
add esp, 0xc
mov byte [0x5c0ce0], 1
push ebx
mov edx, edi
mov ecx, str.virt_dump_data
call fcn.0045e7d0
jmp 0x45e93a
cmp esi, 0x65
jne 0x45e910
push 0
push str.LG_3
push 0xb
call fcn.00454e70
add esp, 0xc
mov byte [0x5c0ce1], 1
push 0
push ebx
push edi
mov edx, str.heap_dump_decrypted_
lea ecx, [esi - 0x63]
call fcn.004c36d0
add esp, 0xc
push ebx
mov edx, edi
mov ecx, str.other_mem
call fcn.0045e7d0
jmp 0x45e93a
cmp esi, 0x66
jne 0x45e93d
push 0
push str.LG_2
push 0xb
call fcn.00454e70
add esp, 0xc
push ebx
mov edx, edi
mov ecx, str.sec_dump_data
call fcn.0045e7d0
mov byte [0x5c0ce2], 1
add esp, 4
cmp esi, 0x64
jne 0x45e951
push 0xc0de
push ebx
push edi
push edi
call fcn.00455bb0
jmp 0x45e96e
cmp esi, 0x65
jne 0x45e965
push 0xc0de
push ebx
push edi
push edi
call fcn.00455610
jmp 0x45e96e
mov eax, dword [ebp + 0xc]
mov dword [eax], 0xc0de
cmp byte [0x5c0ce0], 0
je 0x45e9b4
cmp byte [0x5c0ce2], 0
jne 0x45e9a0
cmp dword [0x5ab0f4], 0x200000
ja 0x45e9b4
push 1
mov edx, 0x20
lea ecx, [edx + 0x23]
call fcn.00425720
add esp, 4
jmp 0x45e9b4
mov eax, dword [0x5c0cdc]
mov ecx, 1
test eax, eax
cmove eax, ecx
mov dword [0x5c0cdc], eax
lea eax, [ebp - 0x30]
push eax
push 0x40
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp eax, 1
jne 0x45eb7a
mov al, byte [0x5af433]
mov cl, byte [0x5a0017]
test al, al
je 0x45e9ec
test cl, cl
jne 0x45e9ec
mov byte [0x5c1042], 1
xor al, al
mov byte [0x5af433], al
mov byte [ebp - 0x24], 0
cmp byte [0x5c101c], 0
jne 0x45ea02
cmp byte [0x5c1041], 0
je 0x45ea06
mov byte [ebp - 0x24], 1
test cl, cl
jne 0x45eb28
test al, al
jne 0x45eb28
cmp byte [0x5c0ce2], al
je 0x45eb01
mov eax, edi
lea esi, [edi + ebx]
xor dl, dl
mov byte [ebp - 0x19], dl
mov dword [ebp - 0x28], eax
nop
cmp eax, esi
jae 0x45ea6a
cmp dword [eax], 0
je 0x45ea3e
add eax, 4
jmp 0x45ea2c
xor ecx, ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 4
jge 0x45ea66
cmp eax, esi
jae 0x45ea63
add eax, 4
mov dword [ebp - 0x28], eax
cmp dword [eax], 0
je 0x45ea5e
xor dl, dl
mov byte [ebp - 0x19], dl
jmp 0x45ea30
mov dl, 1
mov byte [ebp - 0x19], dl
inc ecx
jmp 0x45ea40
test dl, dl
je 0x45ea30
mov dword [ebp - 0x20], 0
xor ecx, ecx
mov edx, dword [0x5b07a4]
mov dword [ebp - 0x20], ecx
cmp ecx, edx
jge 0x45ea99
mov dword [ecx*8 + 0x5afd38], 0
mov dword [ecx*8 + 0x5afd3c], 0
inc ecx
jmp 0x45ea79
mov dword [0x5b07a4], 1
mov dword [0x5afd38], edi
mov dword [0x5afd3c], eax
xor edx, edx
mov dword [ebp - 0x20], edx
cmp edx, dword [0x5b024c]
jge 0x45eafe
lea esi, [edx + edx*2]
mov ecx, dword [esi*4 + 0x5b0250]
mov ebx, dword [esi*4 + 0x5b0254]
add ebx, ecx
cmp dword [0x5ad8a4], ecx
jb 0x45eafb
cmp dword [0x5ad8a4], ebx
jae 0x45eafb
mov dword [esi*4 + 0x5b0250], edi
mov ecx, eax
sub ecx, edi
mov dword [esi*4 + 0x5b0254], ecx
mov dword [esi*4 + 0x5b0258], 0xc0de
inc edx
jmp 0x45eab0
mov ebx, dword [ebp - 0x38]
lea esi, [edi + ebx]
mov ebx, dword [ebp - 0x24]
push ebx
mov edx, esi
mov ecx, edi
call fcn.0045d390
add esp, 4
mov ecx, dword [0x5ad8a4]
cmp ecx, edi
je 0x45eb45
push ebx
mov edx, esi
call fcn.0045d390
jmp 0x45eb42
mov esi, dword [ebp - 0x24]
push esi
mov ecx, dword [0x5ad8a4]
call fcn.0045cfd0
add esp, 4
push esi
mov ecx, edi
call fcn.0045cfd0
add esp, 4
cmp byte [0x5c101c], 0
jne 0x45eb57
cmp byte [0x5c1041], 0
je 0x45eb62
cmp byte [ebp - 0x24], 0
je 0x45eb62
call fcn.0049b420
or eax, 0xffffffff
jmp 0x45eb7c
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret