Function at 0x6f5013d0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, eax
add eax, 0x34
push ebx
sub esp, 0x3c
mov dword [ebp - 0x30], eax
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
cmp dword [esi + 0x4f8], 5
jne 0x6f501410
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x14
mov ebx, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov edi, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
sub esp, 0xc
mov dword [esp + 8], 0x28
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov dword [edi], 0
mov ecx, 0xa
mov ebx, eax
mov dword [edi + 4], 0
sub esp, 0xc
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov edi, ebx
mov dword [ebp - 0x34], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x4f0]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x6f5015b7
mov ebx, dword [esi + 0x4f8]
test ebx, ebx
jle 0x6f5015d8
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
xor ebx, ebx
mov dword [ebp - 0x38], eax
jmp 0x6f501502
mov ecx, dword [ebp - 0x2c]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov ecx, dword [ebp - 0x38]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ecx
mov eax, dword [esi + 0x4f0]
mov edi, dword [ebp - 0x24]
sub esp, 0xc
mov dword [eax + edi], 0
mov eax, dword [esi + 0x4f0]
mov dword [ebp - 0x1c], eax
inc ebx
cmp ebx, dword [esi + 0x4f8]
jge 0x6f501570
lea eax, [ebx*4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x6f5014f9
mov eax, dword [esi + 0x4f4]
lea ecx, [eax + ebx*8]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 8], 5
mov dword [esp + 0xc], 0
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x20], ecx
call sym.___moddi3
mov edx, dword [ebp - 0x28]
lea edx, [edx + eax*4]
mov ecx, dword [edx]
test ecx, ecx
mov ecx, dword [ebp - 0x20]
jne 0x6f5014c0
mov dword [edx], edi
mov edi, dword [ebp - 0x34]
inc ebx
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edi + eax*8], edx
mov dword [edi + eax*8 + 4], ecx
cmp ebx, dword [esi + 0x4f8]
jl 0x6f501502
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x38]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
mov eax, dword [esi + 0x4f4]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edi
sub esp, 0xc
mov dword [esi + 0x4f8], 5
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x4f0], eax
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x4f4], eax
jmp 0x6f5013f6
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x38], eax
jmp 0x6f501570