Function at 0x412a20
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4a29b0
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x4d33a4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [esi + 4], edi
mov dword [ebp - 4], edi
mov dword [esi + 8], vtable.AsyncFile::Delegate.0
mov dword [esi + 0xc], vtable.IDataSourceCallback.0
mov dword [esi], vtable.FixedProvider.0
mov dword [esi + 8], vtable.FixedProvider.1.0
mov dword [esi + 0xc], vtable.FixedProvider.2.0
mov eax, dword [0x4d2c98]
mov edx, dword [eax + 0xc]
mov ecx, 0x4d2c98
call edx
add eax, 0x10
mov dword [esi + 0x10], eax
mov ebx, 1
mov byte [ebp - 4], bl
mov eax, dword [0x4d2c98]
mov edx, dword [eax + 0xc]
mov ecx, 0x4d2c98
call edx
add eax, 0x10
mov dword [esi + 0x14], eax
push str.Fixed
lea ecx, [esi + 0x18]
mov byte [ebp - 4], 2
call fcn.00407520
mov byte [ebp - 4], 3
mov eax, dword [0x4d2c98]
mov edx, dword [eax + 0xc]
mov ecx, 0x4d2c98
call edx
add eax, 0x10
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov byte [ebp - 4], 5
mov eax, dword [0x4d2c98]
mov edx, dword [eax + 0xc]
mov ecx, 0x4d2c98
call edx
add eax, 0x10
mov dword [esi + 0x28], eax
mov byte [ebp - 4], 6
mov eax, dword [0x4d2c98]
mov edx, dword [eax + 0xc]
mov ecx, 0x4d2c98
call edx
add eax, 0x10
mov dword [esi + 0x2c], eax
lea eax, [esi + 0x30]
push eax
mov byte [ebp - 4], 7
call fcn.00420840
mov byte [ebp - 4], 8
mov edx, dword [0x4d2c98]
mov eax, dword [edx + 0xc]
mov ecx, 0x4d2c98
call eax
add eax, 0x10
mov dword [esi + 0xf0], eax
mov byte [ebp - 4], 9
mov dword [esi + 0xf4], edi
mov dword [esi + 0xf8], ebx
mov dword [esi + 0xfc], 5
mov dword [esi + 0x100], edi
mov dword [esi + 0x104], edi
push 0xc
mov dword [esi + 0x154], edi
call fcn.0047d8a0
add esp, 4
cmp eax, edi
je 0x412d59
mov dword [esi + 0x150], eax
mov dword [eax], eax
mov eax, dword [esi + 0x150]
mov dword [eax + 4], eax
mov dword [esi + 0x15c], edi
mov dword [esi + 0x160], edi
mov dword [esi + 0x164], edi
mov dword [esi + 0x168], edi
mov dword [esi + 0x16c], edi
mov byte [ebp - 4], 0xc
push 0x18
mov dword [esi + 0x17c], edi
call fcn.0047d8a0
add esp, 4
cmp eax, edi
je 0x412d35
mov dword [esi + 0x178], eax
mov dword [eax], eax
mov eax, dword [esi + 0x178]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x178]
mov dword [eax + 8], eax
mov ecx, dword [esi + 0x178]
mov byte [ecx + 0x14], bl
mov edx, dword [esi + 0x178]
mov byte [edx + 0x15], bl
mov byte [ebp - 4], 0xd
push 0x1c
mov dword [esi + 0x18c], edi
call fcn.0047d8a0
add esp, 4
cmp eax, edi
je 0x412d11
mov dword [esi + 0x188], eax
mov dword [eax], eax
mov eax, dword [esi + 0x188]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x188]
mov dword [eax + 8], eax
mov eax, dword [esi + 0x188]
mov byte [eax + 0x18], bl
mov ecx, dword [esi + 0x188]
mov byte [ecx + 0x19], bl
mov byte [ebp - 4], 0xe
push 0xc
mov dword [esi + 0x198], edi
call fcn.0047d8a0
add esp, 4
cmp eax, edi
je 0x412ced
mov dword [esi + 0x194], eax
mov dword [eax], eax
mov eax, dword [esi + 0x194]
mov dword [eax + 4], eax
mov dword [esi + 0x1a0], edi
mov byte [ebp - 4], 0xf
or eax, 0xffffffff
push 0x50
mov dword [esi + 0x1a8], eax
mov dword [esi + 0x1ac], eax
mov dword [esi + 0x1b4], edi
mov dword [esi + 0x1b8], eax
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x1b0], edi
mov dword [esi + 0x1c0], edi
call fcn.0047d8a0
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x10
cmp eax, edi
je 0x412cb3
push eax
call fcn.00423c80
mov ebx, eax
jmp 0x412cb5
xor ebx, ebx
mov byte [ebp - 4], 0xf
cmp ebx, edi
je 0x412cc6
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
mov ecx, dword [esi + 0x24]
cmp ecx, edi
je 0x412cd4
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
mov dword [esi + 0x24], ebx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], edi
call fcn.0047e259
push 0x4ca5e4
lea edx, [ebp - 0x20]
push edx
mov dword [ebp - 0x20], vtable.std::bad_alloc.0
call fcn.0047e454
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x14], edi
call fcn.0047e259
push 0x4ca5e4
lea ecx, [ebp - 0x2c]
push ecx
mov dword [ebp - 0x2c], vtable.std::bad_alloc.0
call fcn.0047e454
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], edi
call fcn.0047e259
push 0x4ca5e4
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], vtable.std::bad_alloc.0
call fcn.0047e454
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x14], edi
call fcn.0047e259
push 0x4ca5e4
lea edx, [ebp - 0x2c]
push edx
mov dword [ebp - 0x2c], vtable.std::bad_alloc.0
call fcn.0047e454
int3