Function at 0x51aab20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x52339b9
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x53f3c3c]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov esi, ecx
xor ebp, ebp
mov dword [esp + 0x14], ebp
mov edi, dword [esp + 0x64]
cmp edi, ebp
jne 0x51aabaa
push str._ERROR:
push 0xff
push 0x3c3
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov dword [esp + 0x48], ebp
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
push ebp
push ecx
push str.__d__CMetaDlWrapper::FillMemberFieldInternal__:_dbParser_0x_p_
push edx
push eax
call fcn.051ae2d0
add esp, 0x14
mov dword [esp + 0x48], 0xffffffff
lea ecx, [esp + 0x2c]
call fcn.051ae2c0
mov eax, 0xfffffc18
jmp 0x51ab642
mov ebx, dword [esp + 0x50]
cmp ebx, ebp
je 0x51ab5d2
cmp dword [esp + 0x54], ebp
jbe 0x51ab5d2
mov dword [esp + 0x28], ebp
mov dword [esp + 0x48], 2
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
push edi
lea eax, [esp + 0x1c]
push eax
push ebp
push ebx
mov ecx, esi
call fcn.051a97a0
test eax, eax
je 0x51aac56
push str._ERROR:
push 0xff
push 0x3d3
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov byte [esp + 0x48], 3
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [esi + 8]
push ebx
push ebp
push edx
push str.__d__FillMemberField__:_GetStructMemberSizeInternal___s_____s___fail___size__d_
push ecx
mov edi, 2
push eax
mov dword [esp + 0x30], edi
call fcn.051ae2d0
add esp, 0x1c
mov dword [esp + 0x48], edi
mov eax, edi
mov dword [esp + 0x14], eax
and eax, 0xfffffffd
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
jmp 0x51ab640
push edi
lea edx, [esp + 0x5c]
push edx
push ebp
push ebx
mov ecx, esi
call fcn.051a96e0
test eax, eax
je 0x51aace3
push str._ERROR:
push 0xff
push 0x3d8
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov byte [esp + 0x48], 4
mov ecx, dword [esp + 0x58]
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [esi + 8]
push ebx
push ebp
push edx
push str.__d__FillMemberField__:_GetStructMemberOffsetInternal___s_____s___fail___offset__d_
push ecx
push eax
mov dword [esp + 0x30], 4
call fcn.051ae2d0
add esp, 0x1c
mov dword [esp + 0x48], 2
mov eax, 4
mov dword [esp + 0x14], eax
and eax, 0xfffffffb
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
mov eax, 3
jmp 0x51ab642
push edi
lea edx, [esp + 0x28]
push edx
push ebp
push ebx
mov ecx, esi
call fcn.051a9c10
test eax, eax
je 0x51aad70
push str._ERROR:
push 0xff
push 0x3dd
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov byte [esp + 0x48], 5
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [esi + 8]
push ebx
push ebp
push edx
push str.__d__FillMemberField__:_GetStructMemberTypeInternal___s_____s___fail___type__d_
push ecx
push eax
mov dword [esp + 0x30], 8
call fcn.051ae2d0
add esp, 0x1c
mov dword [esp + 0x48], 2
mov eax, 8
mov dword [esp + 0x14], eax
and eax, 0xfffffff7
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
mov eax, 4
jmp 0x51ab642
push edi
lea edx, [esp + 0x20]
push edx
push ebp
push ebx
mov ecx, esi
call fcn.051a95c0
test eax, eax
je 0x51aadfd
push str._ERROR:
push 0xff
push 0x3e2
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov byte [esp + 0x48], 6
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [esi + 8]
push ebx
push ebp
push edx
push str.__d__FillMemberField__:_GetStructMemberAlignmentInternal___s_____s___fail___alignment__d_
push ecx
push eax
mov dword [esp + 0x30], 0x10
call fcn.051ae2d0
add esp, 0x1c
mov dword [esp + 0x48], 2
mov eax, 0x10
mov dword [esp + 0x14], eax
and eax, 0xffffffef
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
mov eax, 5
jmp 0x51ab642
push edi
lea edx, [esp + 0x24]
push edx
push ebp
push ebx
mov ecx, esi
call fcn.051a9aa0
test eax, eax
je 0x51aae8a
push str._ERROR:
push 0xff
push 0x3e7
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov byte [esp + 0x48], 7
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [esi + 8]
push ebx
push ebp
push edx
push str.__d__FillMemberField__:_GetStructMemberDlTypeInternal___s_____s___fail___dl_type__d_
push ecx
push eax
mov dword [esp + 0x30], 0x20
call fcn.051ae2d0
add esp, 0x1c
mov dword [esp + 0x48], 2
mov eax, 0x20
mov dword [esp + 0x14], eax
and eax, 0xffffffdf
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
mov eax, 6
jmp 0x51ab642
push edi
push ebp
push ebx
mov ecx, esi
call fcn.051a9fb0
mov edi, eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x28], edi
test edi, edi
jne 0x51aaf16
push str._ERROR:
push 0xff
push 0x3ed
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov byte [esp + 0x48], 8
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
push edi
push ebx
push ebp
push edx
push str.__d__FillMemberField__:_GetStructMemberTypeNameInternal___s_____s___fail___type_out_name__d_
push ecx
push eax
mov dword [esp + 0x30], 0x40
call fcn.051ae2d0
add esp, 0x1c
mov dword [esp + 0x48], 2
mov eax, 0x40
mov dword [esp + 0x14], eax
and eax, 0xffffffbf
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
lea eax, [edi + 7]
jmp 0x51ab642
mov edi, dword [esp + 0x60]
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x64]
push eax
push edi
call fcn.051a9110
mov eax, dword [esp + 0x6c]
mov cl, byte [esp + 0x74]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x51aafe2
test dword [esp + 0x20], 0x2000000
jne 0x51aafe2
test cl, cl
jne 0x51aafe2
push str._ERROR:
push 0xff
push 0x3f7
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov ecx, eax
mov byte [esp + 0x48], 9
push 0xffffffffffffffff
mov dword [esp + 0x18], 0x80
call fcn.051a91d0
mov edx, dword [esi + 4]
push eax
mov eax, dword [esi + 8]
push ebp
push ebx
push edx
push str.__d__FillMemberField__:_unknown_type____s___s
push eax
push ecx
call fcn.051ae2d0
add esp, 0x20
mov dword [esp + 0x48], 2
mov eax, 0x80
mov dword [esp + 0x14], eax
and eax, 0xffffff7f
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
mov ecx, dword [esp + 0x5c]
push ecx
call sub.mfc90.dll_Ordinal_266
add esp, 4
mov eax, 6
jmp 0x51ab642
cmp eax, dword [esp + 0x24]
je 0x51ab0c1
mov edx, dword [esp + 0x64]
cmp edx, dword [esp + 0x18]
jle 0x51ab0c1
test dword [esp + 0x20], 0x2000000
jne 0x51ab0c1
test cl, cl
jne 0x51ab0c1
push str._ERROR:
push 0xff
push 0x3ff
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov dword [esp + 0x68], eax
mov byte [esp + 0x48], 0xa
mov ecx, edi
mov dword [esp + 0x14], 0x100
call fcn.05019130
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x18]
push ecx
push eax
mov eax, dword [esp + 0x2c]
push edi
push edx
push ebp
push ebp
push eax
call fcn.051a91d0
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
add esp, 4
push eax
mov eax, dword [esp + 0x84]
push ebx
push ecx
push str.__d__FillMemberField__:_type_inconsistent____s_____6s__s__sizeof__s__d____s_input0x_08X__sizeof_input__d.
push edx
push eax
call fcn.051ae2d0
add esp, 0x30
mov dword [esp + 0x48], 2
mov eax, 0x100
mov dword [esp + 0x14], eax
and eax, 0xfffffeff
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
push edi
call sub.mfc90.dll_Ordinal_266
add esp, 4
mov eax, 6
jmp 0x51ab642
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x18]
add ecx, edx
cmp ecx, dword [esp + 0x54]
jle 0x51ab186
push str._ERROR:
push 0xff
push 0x406
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov ecx, eax
mov byte [esp + 0x48], 0xb
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x68]
push eax
push edx
mov dword [esp + 0x24], 0x200
call fcn.051a91d0
add esp, 4
push eax
mov eax, dword [esp + 0x34]
push ebp
push eax
call fcn.051a91d0
mov edx, dword [esi + 4]
add esp, 4
push eax
mov eax, dword [esi + 8]
push ebx
push edx
push str.__d__FillMemberField__:_exceed_output_buffer____s_____6s__s____s_input___offset__lu_size_out__lu_____buf_out_len__lu_.
push eax
push ecx
call fcn.051ae2d0
add esp, 0x2c
mov dword [esp + 0x48], 2
mov eax, 0x200
mov dword [esp + 0x14], eax
and eax, 0xfffffdff
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov dword [esp + 0x48], 0xffffffff
mov ecx, dword [esp + 0x5c]
push ecx
call sub.mfc90.dll_Ordinal_266
add esp, 4
mov eax, 7
jmp 0x51ab642
mov edx, dword [esp + 0x64]
push edx
call sub.mfc90.dll_Ordinal_265
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x58], eax
mov eax, ecx
add esp, 4
and eax, 0x80000000
mov dword [esp + 0x24], eax
jne 0x51ab202
test ecx, 0x2000000
jne 0x51ab202
mov eax, dword [esp + 0x64]
mov ecx, edi
cmp eax, 2
jne 0x51ab1d6
call fcn.050190e0
mov edx, dword [esp + 0x54]
movzx eax, ax
mov cx, ax
mov dword [esp + 0x68], eax
mov word [edx], cx
jmp 0x51ab257
cmp eax, 1
jne 0x51ab1e8
call fcn.050190a0
mov ecx, dword [esp + 0x54]
mov byte [ecx], al
jmp 0x51ab257
call fcn.05019130
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x68], eax
push edx
lea eax, [esp + 0x6c]
push eax
push ecx
jmp 0x51ab24f
mov eax, dword [esp + 0x64]
mov ecx, edi
cmp eax, 2
jne 0x51ab225
call fcn.050190e0
mov ecx, dword [esp + 0x54]
movzx edx, ax
mov ax, dx
mov dword [esp + 0x68], edx
mov word [ecx], ax
jmp 0x51ab257
cmp eax, 1
jne 0x51ab237
call fcn.050190a0
mov edx, dword [esp + 0x54]
mov byte [edx], al
jmp 0x51ab257
call fcn.05019130
mov edx, dword [esp + 0x54]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
push eax
lea ecx, [esp + 0x6c]
push ecx
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0x54]
push edx
push ecx
push eax
mov dword [esp + 0x74], eax
call sub.MSVCR90.dll_memcpy
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x60]
push edx
push eax
push ecx
call sub.MSVCR90.dll_memcpy
add esp, 0x18
cmp dword [esp + 0x24], 0
jne 0x51ab425
test dword [esp + 0x20], 0x2000000
jne 0x51ab425
mov eax, dword [esp + 0x18]
push 0x52c722a
lea ecx, [esp + 0x30]
push 1
cmp eax, 2
jne 0x51ab338
push 0x47f
push str..MetaUtilityMetaDlWrapper.cpp
call fcn.051ae270
mov dword [esp + 0x50], eax
mov byte [esp + 0x48], 0x10
mov ecx, edi
call fcn.050190e0
movzx edx, ax
mov ecx, edi
mov dword [esp + 0x68], edx
call fcn.050190e0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
movzx ecx, word [ecx]
push 2
push edx
mov edx, dword [esp + 0x60]
push edx
movzx edx, word [esp + 0x74]
movzx eax, ax
cwde
push edx
mov edx, dword [esp + 0x70]
push eax
push edx
call fcn.051a91d0
mov edx, dword [esp + 0x74]
add esp, 4
push eax
movzx eax, cx
push eax
mov eax, dword [esi + 4]
movsx ecx, cx
push ecx
mov ecx, dword [esi + 8]
push ebp
push edx
mov edx, dword [esp + 0x78]
push ebx
push eax
push str.__d__FillMemberField__:__s_____6s__s_hd_0x_04X________s_input_hd_0x_04X___offset__d___align__d___size__d_.
push ecx
push edx
jmp 0x51ab599
cmp eax, 1
jne 0x51ab3b7
push 0x48f
push str..MetaUtilityMetaDlWrapper.cpp
call fcn.051ae270
mov dword [esp + 0x50], eax
mov byte [esp + 0x48], 0x11
mov ecx, edi
call fcn.050190a0
mov ecx, edi
mov byte [esp + 0x68], al
call fcn.050190a0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
mov cl, byte [ecx]
push 1
push edx
mov edx, dword [esp + 0x60]
push edx
movzx edx, byte [esp + 0x74]
movsx eax, al
push edx
mov edx, dword [esp + 0x70]
push eax
push edx
call fcn.051a91d0
mov edx, dword [esp + 0x74]
add esp, 4
push eax
movzx eax, cl
push eax
mov eax, dword [esi + 4]
movsx ecx, cl
push ecx
mov ecx, dword [esi + 8]
push ebp
push edx
mov edx, dword [esp + 0x78]
push ebx
push eax
push str.__d__FillMemberField__:__s_____6s__s_hd_0x_02X________s_input_hd_0x_02X___offset__d___align__d___size__d_.
push ecx
push edx
jmp 0x51ab599
push 0x49f
push str..MetaUtilityMetaDlWrapper.cpp
call fcn.051ae270
mov dword [esp + 0x50], eax
mov byte [esp + 0x48], 0x12
mov ecx, edi
call fcn.05019130
mov ecx, edi
mov dword [esp + 0x68], eax
call fcn.05019130
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx]
push edx
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x74]
push edx
push eax
mov eax, dword [esp + 0x74]
push eax
call fcn.051a91d0
mov edx, dword [esi + 4]
add esp, 4
push eax
push ecx
push ecx
mov ecx, dword [esp + 0x7c]
push ebp
push ecx
mov ecx, dword [esp + 0x78]
push ebx
push edx
push str.__d__FillMemberField__:__s_____6s__s_d_0x_08X________s_input_d_0x_08X___offset__d___align__d___size__d_.
jmp 0x51ab594
mov eax, dword [esp + 0x18]
push 0x52c722a
lea ecx, [esp + 0x30]
push 1
cmp eax, 2
jne 0x51ab4b4
push 0x44b
push str..MetaUtilityMetaDlWrapper.cpp
call fcn.051ae270
mov dword [esp + 0x50], eax
mov byte [esp + 0x48], 0xd
mov ecx, edi
call fcn.050190e0
movzx edx, ax
mov ecx, edi
mov dword [esp + 0x68], edx
call fcn.050190e0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
movzx ecx, word [ecx]
push 2
push edx
mov edx, dword [esp + 0x60]
push edx
movzx edx, word [esp + 0x74]
movzx eax, ax
movzx eax, ax
push edx
mov edx, dword [esp + 0x70]
push eax
push edx
call fcn.051a91d0
mov edx, dword [esi + 8]
add esp, 4
push eax
mov eax, dword [esp + 0x74]
push ecx
push ecx
mov ecx, dword [esi + 4]
push ebp
push eax
mov eax, dword [esp + 0x78]
push ebx
push ecx
push str.__d__FillMemberField__:__s_____6s__s_hu_0x_04X________s_input_hu_0x_04X___offset__d___align__d___size__d_.
push edx
push eax
jmp 0x51ab599
cmp eax, 1
jne 0x51ab52b
push 0x45b
push str..MetaUtilityMetaDlWrapper.cpp
call fcn.051ae270
mov dword [esp + 0x50], eax
mov byte [esp + 0x48], 0xe
mov ecx, edi
call fcn.050190a0
mov ecx, edi
mov byte [esp + 0x68], al
call fcn.050190a0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [ecx]
push 1
push edx
mov edx, dword [esp + 0x60]
push edx
movzx edx, byte [esp + 0x74]
movzx eax, al
push edx
mov edx, dword [esp + 0x70]
push eax
push edx
call fcn.051a91d0
mov edx, dword [esi + 8]
add esp, 4
push eax
mov eax, dword [esp + 0x74]
push ecx
push ecx
mov ecx, dword [esi + 4]
push ebp
push eax
mov eax, dword [esp + 0x78]
push ebx
push ecx
push str.__d__FillMemberField__:__s_____6s__s_hu_0x_02X________s_input_hu_0x_02X___offset__d___align__d___size__d_.
push edx
push eax
jmp 0x51ab599
push 0x46b
push str..MetaUtilityMetaDlWrapper.cpp
call fcn.051ae270
mov dword [esp + 0x50], eax
mov byte [esp + 0x48], 0xf
mov ecx, edi
call fcn.05019130
mov ecx, edi
mov dword [esp + 0x68], eax
call fcn.05019130
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx]
push edx
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x74]
push edx
push eax
mov eax, dword [esp + 0x74]
push eax
call fcn.051a91d0
mov edx, dword [esi + 4]
add esp, 4
push eax
push ecx
push ecx
mov ecx, dword [esp + 0x7c]
push ebp
push ecx
mov ecx, dword [esp + 0x78]
push ebx
push edx
push str.__d__FillMemberField__:__s_____6s__s_u_0x_08X________s_input_u_0x_08X___offset__d___align__d___size__d_.
mov eax, dword [esi + 8]
push eax
push ecx
call fcn.051ae2d0
add esp, 0x3c
mov byte [esp + 0x48], 2
lea ecx, [esp + 0x2c]
call fcn.051ae2c0
mov edx, dword [esp + 0x54]
push edx
call sub.mfc90.dll_Ordinal_266
mov dword [esp + 0x4c], 0xffffffff
mov eax, dword [esp + 0x60]
push eax
call sub.mfc90.dll_Ordinal_266
add esp, 8
xor eax, eax
jmp 0x51ab642
push str._ERROR:
push 0xff
push 0x3cb
push str..MetaUtilityMetaDlWrapper.cpp
lea ecx, [esp + 0x3c]
call fcn.051ae270
mov edi, 1
mov dword [esp + 0x48], edi
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x60]
push ebx
push edx
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [esi + 8]
push edx
push str.__d__FillMemberField__:__s___s:_arguments_are_invalid___buf_out_0x_08X___u_.
push ecx
push eax
mov dword [esp + 0x34], edi
call fcn.051ae2d0
add esp, 0x20
mov dword [esp + 0x48], 0xffffffff
mov eax, edi
mov dword [esp + 0x14], eax
and eax, 0xfffffffe
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], eax
call fcn.051ae2c0
mov eax, edi
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret 0x1c