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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x20
mov eax, dword [0x7af6e4]
test eax, eax
je 0x4cf5b0
lea esi, [ebp - 0x18]
lea ebx, [ebp - 0x14]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], 0
mov dword [esp], 0x34
call eax
sub esp, 0x10
mov ebx, eax
call fcn.0057d110
mov edi, dword fs:[0x18]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1a92
mov eax, dword [edi + 0x34]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5dcf21
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1a93
mov dword [esp + 4], str.expected_count___0_n
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1a94
mov dword [esp + 4], str.expected_size___0_n
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call fcn.004b46e0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], 0
mov dword [esp + 4], 8
add eax, eax
mov dword [esp + 8], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov ebx, eax
lea eax, [ebp - 0x14]
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], 0x34
call dword [0x7af6e4]
sub esp, 0x10
mov dword [ebp - 0x1c], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1a99
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x5dcf21
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x1c]
mov dword [esp], ecx
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1a9a
mov dword [esp + 4], str.expected_count___0_n
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call fcn.004b46e0
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], 0
mov dword [esp], 4
call dword [0x7af6e4]
sub esp, 0x10
mov dword [ebp - 0x1c], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1a9e
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x5dcf21
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1a9f
mov dword [esp + 4], str.expected_count___0_n
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aa0
mov dword [esp + 4], str.expected_size___0_n
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aa1
mov dword [esp + 4], str.expected_size___0_n
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
setae al
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], 0
mov dword [esp], 4
call dword [0x7af68c]
sub esp, 0x10
mov dword [ebp - 0x1c], eax
call fcn.0057d110
mov ecx, dword [ebp - 0x1c]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aa6
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0x5d910c
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aa7
mov dword [esp + 4], str.expected_count___0_n
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aa8
mov dword [esp + 4], str.expected_size___0_n
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aa9
mov dword [esp + 4], str.expected_size___0_n
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x14], eax
setae al
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
lea eax, [ebp - 0x14]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [ebp - 0x14], 0
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], 4
call dword [0x7af6e4]
sub esp, 0x10
mov dword [ebp - 0x1c], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aae
xor eax, eax
mov dword [esp + 4], str.Expected_GetThreadPreferredUILanguages_to_fail_n
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1aaf
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Expected_error_ERROR_INSUFFICIENT_BUFFER__got__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x7a
sete al
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], 0x1ab1
mov eax, dword [ebp - 0x10]
mov dword [esp + 0xc], ecx
cmp ecx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.expected__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
lea eax, [ebp - 0x14]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [ebp - 0x14], 1
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], 4
call dword [0x7af6e4]
sub esp, 0x10
mov dword [ebp - 0x1c], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1ab6
xor eax, eax
mov dword [esp + 4], str.Expected_GetThreadPreferredUILanguages_to_fail_n
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1ab7
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Expected_error_ERROR_INSUFFICIENT_BUFFER__got__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x7a
sete al
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], 0x1ab9
mov eax, dword [ebp - 0x10]
mov dword [esp + 0xc], ecx
cmp ecx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.expected__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x34], 0xdeadbeef
sub eax, 1
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], 4
call dword [0x7af6e4]
sub esp, 0x10
mov dword [ebp - 0x1c], eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1abe
xor eax, eax
mov dword [esp + 4], str.Expected_GetThreadPreferredUILanguages_to_fail_n
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
sete al
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1abf
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Expected_error_ERROR_INSUFFICIENT_BUFFER__got__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x7a
sete al
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], 0x1ac1
mov eax, dword [ebp - 0x10]
mov dword [esp + 0xc], ecx
cmp ecx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 4], str.expected__lu__got__lu_n
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x34], 0xdeadbeef
sub eax, 2
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], 0
call dword [0x7af6e4]
sub esp, 0x10
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1ac6
xor eax, eax
test esi, esi
sete al
mov dword [esp + 4], str.Expected_GetThreadPreferredUILanguages_to_fail_n
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x1ac7
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Expected_error_ERROR_INSUFFICIENT_BUFFER__got__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x7a
sete al
mov dword [esp], eax
call fcn.004b46e0
mov esi, dword [0x8f0770]
call fcn.0057d110
xor ecx, ecx
mov edi, dword [eax + 0x10]
test esi, esi
mov dword [eax + 0x14], 1
setne cl
lea edx, [edi + edi]
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x4cf56c
call fcn.0057d110
mov ecx, 1
mov dword [eax], 0x5d8897
mov edx, dword [ebp - 0x14]
mov dword [eax + 4], 0x1aca
mov eax, dword [ebp - 0x10]
cmp edx, eax
je 0x4cf54c
lea ecx, [eax - 1]
cmp ecx, edx
sete cl
movzx ecx, cl
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], str.expected__lu__got__lu_n
call fcn.004b46e0
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x4cf520
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x1a8c
call fcn.004b3be0
mov dword [esp], str.GetThreadPreferredUILanguages_is_not_available._n
call fcn.004b46b0
jmp 0x4cf5a3