Function at 0x7d258990
Capabilities:
Allocate or change rwx memory

Disassembly:
jmp 0x7d257c50
test edx, edx
je 0x7d257c6b
cmp edx, 0xc000
ja 0x7d258990
add edx, 0x7f
shr edx, 7
jmp 0x7d2586b0
xor eax, eax
ret
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r15
sub rsp, 0x20
mov esi, edx
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r15d, eax
xor eax, eax
lock cmpxchg dword [rbx + 4], r15d
cmp eax, r15d
je 0x7d2586f6
lea rcx, [rbx + 8]
mov r12b, 1
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [rbx + 4], r15d
jmp 0x7d2586f9
xor r12b, r12b
mov rdi, qword [rbx + 0x30]
xor ebp, ebp
mov qword [rsp + 0x40], r14
test rdi, rdi
je 0x7d2587c1
nop dword [rax]
mov eax, dword [rbx]
mov r14, qword [rdi]
cmp dword [rdi + 0x20], eax
je 0x7d258728
lea rcx, str.pool_abend_POOL_GET_CELLS_EYECATCHER_MISMATCH_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
int3
movzx eax, word [rdi + 0x24]
cmp eax, esi
jb 0x7d2587b5
mov edx, esi
mov rcx, rdi
call fcn.7d2581e0
mov r9d, eax
cmp eax, 0xffffffff
jne 0x7d2587f3
lea eax, [rsi - 1]
mov word [rdi + 0x24], ax
cmp ax, 4
jae 0x7d2587b5
mov rcx, qword [rdi + 8]
mov rax, qword [rdi]
dec dword [rbx + 0x40]
test rcx, rcx
jne 0x7d25877f
test rax, rax
jne 0x7d258775
mov qword [rbx + 0x38], rbp
mov qword [rbx + 0x30], rbp
jmp 0x7d258794
mov qword [rbx + 0x30], rax
mov qword [rax + 8], rbp
jmp 0x7d258794
test rax, rax
jne 0x7d25878d
mov qword [rbx + 0x38], rcx
mov qword [rcx], rbp
jmp 0x7d258794
mov qword [rcx], rax
mov qword [rax + 8], rcx
mov rax, qword [rbx + 0x48]
inc dword [rbx + 0x58]
mov qword [rbx + 0x48], rdi
mov qword [rdi + 8], rbp
mov qword [rdi], rax
test rax, rax
jne 0x7d2587b1
mov qword [rbx + 0x50], rdi
jmp 0x7d2587b5
mov qword [rax + 8], rdi
mov rdi, r14
test r14, r14
jne 0x7d258710
mov edx, dword [rbx]
mov rcx, rbx
call fcn.7d257c80
mov rdi, rax
test rax, rax
jne 0x7d2587f0
test r12b, r12b
je 0x7d2587e9
lea rcx, [rbx + 8]
mov dword [rbx + 4], r15d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xchg dword [rbx + 4], ebp
xor eax, eax
jmp 0x7d2588d7
mov r9d, ebp
sub word [rdi + 0x24], si
cmp word [rdi + 0x24], 4
jae 0x7d25885c
mov rcx, qword [rdi + 8]
mov rax, qword [rdi]
dec dword [rbx + 0x40]
test rcx, rcx
jne 0x7d258826
test rax, rax
jne 0x7d25881c
mov qword [rbx + 0x38], rbp
mov qword [rbx + 0x30], rbp
jmp 0x7d25883b
mov qword [rbx + 0x30], rax
mov qword [rax + 8], rbp
jmp 0x7d25883b
test rax, rax
jne 0x7d258834
mov qword [rbx + 0x38], rcx
mov qword [rcx], rbp
jmp 0x7d25883b
mov qword [rcx], rax
mov qword [rax + 8], rcx
mov rax, qword [rbx + 0x48]
inc dword [rbx + 0x58]
mov qword [rbx + 0x48], rdi
mov qword [rdi + 8], rbp
mov qword [rdi], rax
test rax, rax
jne 0x7d258858
mov qword [rbx + 0x50], rdi
jmp 0x7d25885c
mov qword [rax + 8], rdi
mov eax, r9d
lea r8, [rdi + 0x80]
shr rax, 3
mov ecx, r9d
and ecx, 7
mov edx, 1
add r8, rax
shl edx, cl
test esi, esi
je 0x7d2588b0
nop
cmp edx, 1
jne 0x7d258895
cmp esi, 8
jbe 0x7d258895
mov byte [r8], 0xff
add esi, 0xfffffff8
mov eax, edx
jmp 0x7d2588a9
or byte [r8], dl
dec esi
add edx, edx
movzx eax, dl
shr edx, 8
or eax, edx
mov edx, eax
and eax, 1
add r8, rax
test esi, esi
jne 0x7d258880
shl r9d, 7
mov eax, r9d
add rdi, rax
test r12b, r12b
je 0x7d2588d0
lea rcx, [rbx + 8]
mov dword [rbx + 4], r15d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xchg dword [rbx + 4], ebp
lea rax, [rdi + 0x100]
mov r14, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r12
pop rdi
ret
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r15
sub rsp, 0x20
mov esi, edx
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
add esi, 0x10027
mov r9d, 4
and esi, 0xffff0000
mov ebp, eax
cmp byte [rdi], 0xff
mov eax, 0x40
mov r8d, 0x103000
mov edx, esi
cmove r9d, eax
mov ebx, esi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r15, rax
test rax, rax
je 0x7d258a63
mov eax, dword [rdi]
add rbx, 0xffffffffffffffd8
add rbx, r15
mov qword [rsp + 0x40], r14
mov dword [rbx + 0x10], eax
xor eax, eax
mov qword [rbx + 0x14], rdi
mov qword [rbx + 0x1c], r15
mov dword [rbx + 0x24], esi
lock cmpxchg dword [rdi + 4], ebp
cmp eax, ebp
je 0x7d258a20
lea rcx, [rdi + 8]
mov r14b, 1
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [rdi + 4], ebp
jmp 0x7d258a23
xor r14b, r14b
mov rax, qword [rdi + 0x60]
xor esi, esi
inc dword [rdi + 0x70]
mov qword [rdi + 0x60], rbx
mov qword [rbx + 8], rsi
mov qword [rbx], rax
test rax, rax
jne 0x7d258a42
mov qword [rdi + 0x68], rbx
jmp 0x7d258a46
mov qword [rax + 8], rbx
test r14b, r14b
mov r14, qword [rsp + 0x40]
je 0x7d258a60
lea rcx, [rdi + 8]
mov dword [rdi + 4], ebp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xchg dword [rdi + 4], esi
mov rax, r15
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop rdi
pop rsi
ret