Function at 0x2d88fd74
Capabilities:
Print debug messages

Disassembly:
push 0x24
mov eax, 0x2d8e96c0
call fcn.2d802414
mov dword [ebp - 0x24], ecx
mov esi, dword [ebp + 0x10]
xor ebx, ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
push dword [esi + 4]
push dword [esi]
call fcn.2d898f5f
add esp, 0xc
lea eax, [ebp - 0x20]
push dword [ebp - 0x30]
push dword [esi + 4]
push dword [esi]
push eax
call fcn.2d898f5f
add esp, 0x10
lea eax, [ebp - 0x30]
mov ecx, esi
push dword [esi + 4]
push dword [ebp - 0x20]
push eax
call fcn.2d898f5f
mov edi, dword [esi + 4]
mov edx, ebx
mov eax, dword [esi]
xor ecx, ecx
mov dword [ebp - 0x1c], ebx
mov ebx, edi
sub ebx, eax
mov dword [ebp - 0x14], edx
add ebx, 3
shr ebx, 2
cmp eax, edi
cmova ebx, ecx
test ebx, ebx
je 0x2d88fe23
jmp 0x2d88fdea
mov edx, dword [ebp - 0x14]
mov ecx, dword [eax]
inc edx
lea eax, [eax + 4]
cmp byte [ecx + 0x200], 0
cmove edx, dword [ebp - 0x14]
cmp dword [ecx + 0x220], 0
lea esi, [edx + 1]
mov ecx, esi
mov dword [ebp - 0x14], esi
mov esi, dword [ebp + 0x10]
cmove ecx, edx
mov edx, dword [ebp - 0x1c]
inc edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x1c], edx
cmp edx, ebx
jne 0x2d88fde7
mov dword [ebp - 0x14], ecx
mov edx, ecx
xor ecx, ecx
mov eax, edx
push 0x28
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.2d898f5f
mov ebx, eax
mov dword [ebp - 0x28], ebx
pop ecx
test ebx, ebx
je 0x2d88ffd5
imul eax, dword [ebp - 0x14], 0x28
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x24]
xor edx, edx
inc edx
add esp, 0xc
xor ecx, ecx
mov word [eax + 6], dx
mov eax, dword [ebp + 0x14]
mov word [eax], cx
mov esi, dword [esi]
mov dword [ebp - 0x14], ecx
cmp esi, edi
je 0x2d88ff77
mov eax, dword [esi]
mov dword [ebp - 0x1c], eax
add eax, 0x200
cmp byte [eax], 0
je 0x2d88ff4c
mov ecx, dword [ebp - 0x1c]
cmp byte [ecx + 0x226], 0
je 0x2d88fe9b
mov ecx, dword [ebp + 0x14]
inc word [ecx]
push 0
push 0x20
push eax
call fcn.2d898f5f
add esp, 0xc
push eax
mov eax, dword [ebp - 0x1c]
add eax, 0x200
push eax
call fcn.2d898f5f
mov dword [ebp - 0x18], eax
pop ecx
pop ecx
test eax, eax
jne 0x2d88fed2
mov ecx, dword [ebp - 0x14]
movzx eax, cx
mov dword [ebp - 0x20], eax
imul eax, eax, 0x28
mov byte [eax + ebx], 0
jmp 0x2d88ff39
push 0
push 0x7fffffff
push eax
call fcn.2d898f5f
add esp, 0xc
push eax
push dword [ebp - 0x18]
call fcn.2d898f5f
push 0
push 0x7fffffff
push dword [ebp - 0x18]
call fcn.2d898f5f
mov ecx, dword [ebp - 0x14]
add esp, 0x14
push 0x1e
pop edx
cmp eax, edx
cmovb edx, eax
movzx eax, cx
mov dword [ebp - 0x20], eax
imul eax, eax, 0x28
push edx
push dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], eax
add eax, ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x2c]
add esp, 0xc
add eax, dword [ebp - 0x30]
push dword [ebp - 0x18]
mov byte [eax + ebx], 0
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
push 0x2d8f9c10
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
mov eax, dword [ebp - 0x20]
xor edx, edx
inc edx
jmp 0x2d88ff4f
movzx eax, cx
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x220]
test ecx, ecx
jne 0x2d88ff60
mov eax, edx
jmp 0x2d88ff6a
imul eax, eax, 0x28
push 2
mov dword [eax + ebx + 0x48], ecx
pop eax
mov ecx, dword [ebp - 0x14]
add esi, 4
add ecx, eax
jmp 0x2d88fe6b
push 0x2d8f9c10
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
push 2
push dword [ebp + 0xc]
call fcn.2d83b154
mov esi, dword [ebp - 0x24]
mov edx, eax
pop ecx
pop ecx
movzx ecx, word [ebp + 8]
mov eax, dword [esi]
mov eax, dword [eax + ecx*4]
mov dword [eax], edx
mov eax, dword [esi]
mov eax, dword [eax + ecx*4]
mov dword [eax + 4], ebx
mov eax, dword [esi]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov word [eax + 8], cx
xor eax, eax
inc eax
jmp 0x2d88ffcd
call fcn.2d801adc
ret 0x10
call fcn.2d898f5f
int3