Function at 0x7d221451
Capabilities:
Print debug messages
Terminate process

Disassembly:
jmp 0x7d2603f0
sub esp, 8
push ebp
mov ebp, dword [esp + 0x10]
push esi
test ebp, ebp
je 0x7d260628
mov esi, dword [esp + 0x18]
test esi, esi
je 0x7d260628
push ebx
push edi
movzx edi, bp
test edi, edi
jne 0x7d2604f3
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea ecx, [esi + 0x10017]
mov ebx, eax
and ecx, 0xffff0000
lea eax, [ebp - 0x18]
add eax, ecx
mov dword [esp + 0x20], eax
mov esi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
cmp ecx, dword [esi]
je 0x7d26044d
push str.pool_abend_POOL_FREE_LARGE_CHUNK_SECOND_EYECATCHER_MISMATCH_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
int3
lea edi, [esi + 4]
mov ecx, ebx
xor eax, eax
lock cmpxchg dword [edi], ecx
cmp eax, ebx
je 0x7d26046f
lea eax, [esi + 8]
mov byte [esp + 0x1c], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [edi], ebx
jmp 0x7d260474
mov byte [esp + 0x1c], 0
mov eax, dword [esp + 0x20]
lea edx, [esi + 8]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
dec dword [esi + 0x40]
test ecx, ecx
jne 0x7d26049f
test eax, eax
jne 0x7d260493
mov dword [esi + 0x3c], eax
mov dword [esi + 0x38], eax
jmp 0x7d2604af
mov dword [esi + 0x38], eax
mov dword [eax + 4], 0
jmp 0x7d2604af
test eax, eax
jne 0x7d2604aa
mov dword [esi + 0x3c], ecx
mov dword [ecx], eax
jmp 0x7d2604af
mov dword [ecx], eax
mov dword [eax + 4], ecx
cmp byte [esp + 0x1c], 0
je 0x7d2604c3
push edx
mov dword [edi], ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
xchg dword [edi], eax
push 0x8000
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_VirtualFree]
test eax, eax
jne 0x7d26061e
push eax
push eax
push 0xc0000025
push 0xc0000005
call dword [sym.imp.KERNEL32.dll_RaiseException]
add esi, 0x7f
shr esi, 7
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
and ebp, 0xffff0000
mov dword [esp + 0x10], eax
lea ecx, [edi - 0x100]
mov ebx, 1
shr ecx, 7
mov edx, ecx
and ecx, 7
mov eax, dword [ebp + 0x10]
lea edi, [ebp + 0x80]
shr edx, 3
add edi, edx
shl ebx, cl
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x20], edx
cmp eax, dword [edx]
je 0x7d260547
push str.pool_abend_POOL_FREE_CELLS_EYECATCHER_MISMATCH_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
int3
mov ecx, dword [esp + 0x10]
lea eax, [edx + 4]
mov dword [esp + 0x14], eax
xor eax, eax
mov edx, dword [esp + 0x14]
lock cmpxchg dword [edx], ecx
mov edx, dword [esp + 0x20]
cmp eax, dword [esp + 0x10]
je 0x7d260585
lea eax, [edx + 8]
mov byte [esp + 0x1c], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov dword [eax], ecx
jmp 0x7d26058a
mov byte [esp + 0x1c], 0
movzx eax, word [ebp + 0x14]
cmp eax, 4
jae 0x7d2605c7
add eax, esi
cmp eax, 4
jb 0x7d2605c7
push ebp
lea eax, [edx + 0x2c]
push eax
call fcn.7d22193d
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
inc dword [edx + 0x28]
mov dword [edx + 0x20], ebp
mov dword [ebp + 4], 0
mov dword [ebp], eax
test eax, eax
jne 0x7d2605c4
mov dword [edx + 0x24], ebp
jmp 0x7d2605c7
mov dword [eax + 4], ebp
add word [ebp + 0x14], si
test esi, esi
je 0x7d260600
nop
cmp ebx, 1
jne 0x7d2605e4
cmp esi, 8
jbe 0x7d2605e4
mov byte [edi], 0
sub esi, 8
mov eax, ebx
jmp 0x7d2605fa
mov al, bl
dec esi
not al
add ebx, ebx
and byte [edi], al
movzx eax, bl
shr ebx, 8
or ebx, eax
mov eax, ebx
and eax, 1
add edi, eax
test esi, esi
jne 0x7d2605d0
cmp byte [esp + 0x1c], 0
je 0x7d26061e
mov eax, dword [esp + 0x10]
lea ebx, [edx + 4]
mov dword [ebx], eax
lea eax, [edx + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
xchg dword [ebx], eax
pop edi
pop ebx
pop esi
pop ebp
add esp, 8
ret 8
push str.pool_abend_POOL_FREE_NULL_PTR_OR_ZERO_SIZE_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
int3