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

Disassembly:
sub esp, 0x474
mov eax, dword [0x10077990]
xor eax, esp
mov dword [esp + 0x470], eax
mov eax, dword [esp + 0x478]
push ebx
mov ebx, dword [esp + 0x480]
push ebp
push esi
push edi
mov edi, dword [esp + 0x494]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x498]
push 0x2c
mov dword [esp + 0x50], eax
lea eax, [esp + 0x64]
push 0
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x68], 0
call fcn.1003e950
movdqu xmm0, xmmword [str.ConstraintColumnUsageIndex]
mov eax, dword [0x1005eb90]
add esp, 0xc
mov esi, dword [ebx + 0x10]
mov edx, 1
movdqu xmmword [esp + 0x114], xmm0
mov dword [esp + 0x144], eax
movdqu xmm0, xmmword [0x1005eb70]
movzx eax, word [0x1005eb94]
mov word [esp + 0x148], ax
movzx eax, word [0x1005ebc0]
movdqu xmmword [esp + 0x124], xmm0
mov word [esp + 0x174], ax
movdqu xmm0, xmmword [0x1005eb80]
mov eax, dword [esp + 0x490]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0
movdqu xmmword [esp + 0x134], xmm0
movdqu xmm0, xmmword [str.002]
movdqu xmmword [esp + 0x14c], xmm0
movdqu xmm0, xmmword [0x1005eba8]
movdqu xmmword [esp + 0x15c], xmm0
movq xmm0, qword [0x1005ebb8]
movq qword [esp + 0x16c], xmm0
test eax, eax
je 0x100285fc
test edi, edi
je 0x100285f2
cmp eax, 7
ja 0x100285f2
test eax, eax
je 0x100285a4
movzx ecx, word [edi]
test cx, cx
je 0x100285a4
cmp ecx, edx
je 0x100285a4
cmp ecx, 8
jne 0x100285f2
cmp dword [edi + 8], 0
jne 0x100285f2
cmp eax, 1
jbe 0x100285c2
movzx ecx, word [edi + 0x10]
test cx, cx
je 0x100285c2
cmp ecx, 1
je 0x100285c2
cmp ecx, 8
jne 0x100285f2
cmp dword [edi + 0x18], 0
jne 0x100285f2
cmp eax, 2
jbe 0x100285da
movzx ecx, word [edi + 0x20]
test cx, cx
je 0x100285da
cmp ecx, 1
je 0x100285da
cmp ecx, 8
jne 0x100285f2
cmp eax, 3
jbe 0x100285fc
movzx ecx, word [edi + 0x30]
test cx, cx
je 0x100285fc
cmp ecx, 1
je 0x100285fc
cmp ecx, 8
je 0x100285fc
mov ebx, 0x80070057
jmp 0x10029040
cmp eax, 2
jbe 0x10028625
movzx ecx, word [edi + 0x20]
test cx, cx
je 0x10028625
cmp ecx, 1
je 0x10028625
mov ebp, dword [edi + 0x28]
xor ecx, ecx
test ebp, ebp
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebp
cmove edx, ecx
mov dword [esp + 0x1c], edx
cmp eax, 3
jbe 0x10028656
movzx eax, word [edi + 0x30]
test ax, ax
je 0x10028656
cmp eax, 1
je 0x10028656
mov ebx, dword [edi + 0x38]
xor eax, eax
test ebx, ebx
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x18]
cmove edx, eax
mov dword [esp + 0x34], 1
mov dword [esp + 0x1c], edx
mov eax, dword [0x1007a1e0]
push 0x24
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov ebp, eax
mov dword [esp + 0x20], ebp
test ebp, ebp
je 0x1002901d
push 0
push ebp
lea eax, [esp + 0x1c]
push eax
push ebx
push 0xb
call fcn.10031c40
mov ebx, eax
test ebx, ebx
js 0x10029022
push 0x64
push 0x15
lea eax, [esp + 0x154]
push eax
push 0
lea eax, [esp + 0x124]
push eax
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_114
mov dword [esp + 0x10], eax
test eax, eax
jns 0x100286bd
mov ebx, 0x80004005
jmp 0x10029026
lea eax, [esp + 0x114]
push eax
push dword [esp + 0x18]
push esi
call sub.msjet40.dll_Ordinal_173
mov dword [esp + 0x10], eax
test eax, eax
jns 0x100286e1
mov ebx, 0x80004005
jmp 0x10029026
push 1
push 0x30
lea eax, [esp + 0x64]
push eax
mov eax, dword [esp + 0x24]
push 0
push 0x1005ee14
push 0
push dword [eax + 0x14]
push esi
call sub.msjet40.dll_Ordinal_140
mov dword [esp + 0x10], eax
test eax, eax
je 0x10028712
mov ebx, 0x80004005
jmp 0x10029026
push 0
push SysReAllocStringLen
push dword [esp + 0x68]
push esi
call sub.msjet40.dll_Ordinal_156
mov dword [esp + 0x10], eax
cmp eax, 0xfffff9bd
je 0x1002873c
test eax, eax
je 0x1002873c
mov ebx, 0x80004005
jmp 0x10029026
cmp dword [esp + 0x64], 0
mov dword [esp + 0x24], 0
jbe 0x10028cee
nop
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x10028cf2
mov eax, dword [0x1005ee88]
xor edi, edi
movdqu xmm0, xmmword [0x1005ee70]
push edi
mov dword [esp + 0x110], eax
mov ax, word [0x1005ee8c]
push edi
mov word [esp + 0x118], ax
lea eax, [esp + 0x38]
push eax
push 0x81
lea eax, [esp + 0x188]
mov dword [esp + 0x3c], edi
push eax
push dword [esp + 0x80]
movdqu xmmword [esp + 0x10c], xmm0
push dword [esp + 0x78]
movq xmm0, qword [0x1005ee80]
push esi
movq qword [esp + 0x124], xmm0
call sub.msjet40.dll_Ordinal_167
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
mov eax, dword [esp + 0x30]
and eax, 0xfffffffe
cmp eax, 0x82
jae 0x100290a2
xor ecx, ecx
mov word [esp + eax + 0x178], cx
cmp dword [esp + 0x3c], ecx
je 0x1002880d
lea eax, [esp + 0x178]
push eax
push dword [esp + 0x44]
call fcn.1004ae64
add esp, 8
test eax, eax
jne 0x10028cbc
push 0
push 0
lea eax, [esp + 0x38]
push eax
push 4
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x84]
push dword [esp + 0x78]
push esi
call sub.msjet40.dll_Ordinal_167
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1002902a
mov eax, dword [esp + 0x50]
dec eax
je 0x10028862
sub eax, 3
je 0x10028862
sub eax, 2
je 0x10028862
push 0
push 1
push dword [esp + 0x68]
push esi
call sub.msjet40.dll_Ordinal_156
mov dword [esp + 0x10], eax
jmp 0x10028cdb
push 0x10
call fcn.1003d386
add esp, 4
test eax, eax
je 0x1002887f
mov ecx, eax
call fcn.10002dc0
mov edi, eax
mov dword [esp + 0x44], eax
jmp 0x10028885
xor edi, edi
mov dword [esp + 0x44], edi
test edi, edi
je 0x1002901d
push 0
lea eax, [esp + 0x14]
mov ecx, edi
push eax
lea eax, [esp + 0x180]
push eax
mov eax, dword [esp + 0x24]
push dword [eax + 0x14]
push esi
call fcn.10007b00
mov ebx, eax
mov eax, dword [esp + 0x10]
cmp eax, 0xfffff8ed
jg 0x100288d6
je 0x100288cc
cmp eax, 0xfffff82f
je 0x100288cc
cmp eax, 0xfffff88d
jne 0x10028d26
mov dword [esp + 0x10], 0
jmp 0x100288e6
test eax, eax
jne 0x10028d26
test ebx, ebx
js 0x10029040
xor ebx, ebx
cmp dword [edi + 4], ebx
jbe 0x10028a8f
xor ebp, ebp
mov ecx, dword [edi + 0xc]
add ecx, ebp
call fcn.10007be0
cmp dword [esp + 0x34], 0
mov edi, eax
je 0x10028923
test edi, edi
je 0x10028a7a
push dword [esp + 0x38]
push edi
call fcn.1004ae64
add esp, 8
test eax, eax
jne 0x10028a7a
push 0
push 0
push 0
lea eax, [esp + 0x60]
push eax
push 0xff
lea eax, [esp + 0x294]
push eax
lea eax, [esp + 0x10c]
push eax
push edi
lea eax, [esp + 0x198]
push eax
mov eax, dword [esp + 0x3c]
push 0x1005f260
push dword [eax + 0x14]
push esi
call sub.msjet40.dll_Ordinal_906
mov dword [esp + 0x10], eax
cmp eax, 0xfffff1f0
je 0x10028a7a
cmp eax, 0xfffff88d
je 0x10028a7a
test eax, eax
jne 0x100286b3
mov eax, dword [esp + 0x54]
and eax, 0xfffffffe
cmp eax, 0x200
jae 0x100290a2
xor ecx, ecx
push ecx
push dword [esp + 0x18]
mov word [esp + eax + 0x288], cx
push esi
call sub.msjet40.dll_Ordinal_159
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
lea ecx, [esp + 0x178]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100289c0
sub ecx, edx
mov edx, dword [esp + 0x20]
push 0
sar ecx, 1
push 0
lea eax, [ecx + ecx]
push eax
lea eax, [esp + 0x184]
push eax
push dword [edx + 8]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
test edi, edi
jne 0x100289f8
xor eax, eax
jmp 0x10028a11
mov eax, edi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10028a00
sub eax, edx
sar eax, 1
add eax, eax
push 0
push 0
push eax
push edi
mov edi, dword [esp + 0x30]
push dword [edi + 0xc]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
lea ecx, [esp + 0xf4]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10028a32
sub ecx, edx
push 0
sar ecx, 1
push 0
lea eax, [ecx + ecx]
push eax
lea eax, [esp + 0x100]
push eax
push dword [edi + 0x20]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
push 0
push 0
push 0
push dword [esp + 0x20]
push esi
call sub.msjet40.dll_Ordinal_179
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
mov edi, dword [esp + 0x44]
inc ebx
add ebp, 0x68
cmp ebx, dword [edi + 4]
jb 0x100288f3
mov ebp, dword [esp + 0x20]
lea eax, [esp + 0x2c]
push eax
push 1
lea eax, [esp + 0x18]
push eax
push 1
push 0x3c
lea eax, [esp + 0xcc]
push eax
push 0
lea eax, [esp + 0x194]
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 0x14]
push esi
call fcn.10012fe0
cmp dword [esp + 0x2c], 1
mov ebx, eax
jne 0x10028ad4
mov dword [esp + 0x10], 0
jmp 0x1002884b
test ebx, ebx
js 0x10029022
xor edi, edi
cmp dword [esp + 0xc0], edi
jbe 0x10028ca7
jmp 0x10028af0
push 0
push 0
lea eax, [esp + 0x30]
push eax
push 4
lea eax, [esp + 0x58]
push eax
push dword [esp + 0xdc]
push dword [esp + 0xd4]
push esi
call sub.msjet40.dll_Ordinal_167
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
test byte [esp + 0x48], 3
je 0x10028c84
push eax
push eax
lea eax, [esp + 0x30]
push eax
push 0x82
lea eax, [esp + 0x20c]
push eax
push dword [esp + 0x104]
push dword [esp + 0xd4]
push esi
call sub.msjet40.dll_Ordinal_167
mov dword [esp + 0x10], eax
test eax, eax
js 0x100286b3
mov eax, dword [esp + 0x28]
and eax, 0xfffffffe
cmp eax, 0x82
jae 0x100290a2
xor ecx, ecx
mov word [esp + eax + 0x1fc], cx
cmp dword [esp + 0x34], ecx
je 0x10028b9d
push dword [esp + 0x38]
lea eax, [esp + 0x200]
push eax
call fcn.1004ae64
add esp, 8
test eax, eax
jne 0x10028c84
push 0
push dword [esp + 0x18]
push esi
call sub.msjet40.dll_Ordinal_159
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
lea ecx, [esp + 0x178]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10028bc0
sub ecx, edx
push 0
sar ecx, 1
push 0
lea eax, [ecx + ecx]
push eax
lea eax, [esp + 0x184]
push eax
push dword [ebp + 8]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
push 0
lea eax, [esp + 0x200]
neg eax
push 0
sbb eax, eax
and eax, dword [esp + 0x30]
push eax
lea eax, [esp + 0x208]
push eax
push dword [ebp + 0xc]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
push 0
push 0
lea eax, [esp + 0x30]
push eax
push 0x80
lea eax, [esp + 0x20c]
push eax
push dword [esp + 0xd8]
push dword [esp + 0xd4]
push esi
call sub.msjet40.dll_Ordinal_167
mov dword [esp + 0x10], eax
test eax, eax
js 0x10029028
push 0
push 0
push dword [esp + 0x30]
lea eax, [esp + 0x208]
push eax
push dword [ebp + 0x20]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
push 0
push 0
push 0
push dword [esp + 0x20]
push esi
call sub.msjet40.dll_Ordinal_179
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
push 0
push 1
push dword [esp + 0xc4]
push esi
call sub.msjet40.dll_Ordinal_156
inc edi
mov dword [esp + 0x10], eax
cmp edi, dword [esp + 0xc0]
jb 0x10028af0
push dword [esp + 0xbc]
push esi
call sub.msjet40.dll_Ordinal_108
mov edi, dword [esp + 0x44]
mov dword [esp + 0x10], eax
push 0
push 1
push dword [esp + 0x68]
push esi
call sub.msjet40.dll_Ordinal_156
mov dword [esp + 0x10], eax
test edi, edi
je 0x10028cdb
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 4]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [esp + 0x64]
jb 0x10028750
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x8c]
push 0x2c
push eax
push 0
push 0
push dword [ebx + 0x14]
push esi
call sub.msjet40.dll_Ordinal_912
mov dword [esp + 0x10], eax
cmp eax, 0xfffff88d
je 0x10028d34
test eax, eax
je 0x10028d34
mov ebx, 0x80004005
jmp 0x10029026
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 4]
jmp 0x10029022
xor ebp, ebp
cmp dword [esp + 0x94], ebp
jbe 0x10028f38
test edi, edi
je 0x10028f34
push 0
push 0
lea eax, [esp + 0x38]
mov edi, 1
push eax
push 0x81
lea eax, [esp + 0x290]
mov ebx, edi
push eax
push dword [esp + 0xac]
push dword [esp + 0xa8]
push esi
call sub.msjet40.dll_Ordinal_167
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
mov eax, dword [esp + 0x30]
and eax, 0xfffffffe
cmp eax, 0x200
jae 0x100290a2
xor ecx, ecx
push ecx
push ecx
mov word [esp + eax + 0x288], cx
lea eax, [esp + 0x2c]
push eax
push 0x82
lea eax, [esp + 0x188]
push eax
push dword [esp + 0xbc]
push dword [esp + 0xa8]
push esi
call sub.msjet40.dll_Ordinal_167
mov eax, dword [esp + 0x24]
and eax, 0xfffffffe
cmp eax, 0x82
jae 0x100290a2
xor ecx, ecx
push ecx
push ecx
mov word [esp + eax + 0x180], cx
lea eax, [esp + 0x34]
push eax
push 0x82
lea eax, [esp + 0x20c]
push eax
push dword [esp + 0xc0]
push dword [esp + 0xa8]
push esi
call sub.msjet40.dll_Ordinal_167
mov eax, dword [esp + 0x2c]
and eax, 0xfffffffe
cmp eax, 0x82
jae 0x100290a2
xor ecx, ecx
mov word [esp + eax + 0x1fc], cx
cmp dword [esp + 0x3c], ecx
je 0x10028e4d
push dword [esp + 0x40]
lea eax, [esp + 0x17c]
push eax
call fcn.1004ae64
xor ecx, ecx
add esp, 8
test eax, eax
cmovne edi, ecx
cmp dword [esp + 0x34], 0
je 0x10028e6f
push dword [esp + 0x38]
lea eax, [esp + 0x200]
push eax
call fcn.1004ae64
xor ecx, ecx
add esp, 8
test eax, eax
cmovne ebx, ecx
test edi, edi
je 0x10028f0c
test ebx, ebx
je 0x10028f0c
push 0
push dword [esp + 0x18]
push esi
call sub.msjet40.dll_Ordinal_159
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
mov edi, dword [esp + 0x20]
push eax
push eax
push dword [esp + 0x2c]
lea eax, [esp + 0x184]
push eax
push dword [edi + 8]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
push 0
push 0
push dword [esp + 0x34]
lea eax, [esp + 0x208]
push eax
push dword [edi + 0xc]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
push 0
push 0
push dword [esp + 0x38]
lea eax, [esp + 0x28c]
push eax
push dword [edi + 0x20]
push dword [esp + 0x28]
push esi
call sub.msjet40.dll_Ordinal_172
push 0
push 0
push 0
push dword [esp + 0x20]
push esi
call sub.msjet40.dll_Ordinal_179
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100286b3
push 0
push 1
push dword [esp + 0x98]
push esi
call sub.msjet40.dll_Ordinal_156
inc ebp
mov dword [esp + 0x10], eax
cmp ebp, dword [esp + 0x94]
jae 0x10028f34
mov edi, dword [esp + 0x1c]
jmp 0x10028d43
mov ebx, dword [esp + 0x18]
push dword [esp + 0x90]
push esi
call sub.msjet40.dll_Ordinal_108
push 0x20
mov dword [esp + 0x14], eax
call fcn.1003d386
mov edi, eax
add esp, 4
test edi, edi
je 0x1002901d
mov dword [edi + 4], 0
mov ecx, edi
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi], vtable.ColumnDataWithFakeNamesAndDBTYPES.0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov eax, dword [0x10060a5c]
mov dword [edi + 0x10], eax
mov eax, dword [0x10060a58]
push 0
mov dword [edi + 0x14], eax
lea eax, [esp + 0x14]
push 0
push eax
mov dword [edi + 0x1c], 0
push dword [esp + 0x20]
push dword [ebx + 0x14]
push esi
call 0x10088eff
mov ebx, eax
test ebx, ebx
js 0x10029022
push 0x10068ef8
push 0
push 0
push 1
push edi
push 0
push 0
push 1
push dword [esp + 0x6c]
mov dword [edi + 4], 9
push dword [esp + 0x38]
push 0
push 0
push 0
push dword [esp + 0x4c]
push 0
push dword [esp + 0x94]
call fcn.1001c790
push dword [esp + 0x60]
mov ebx, eax
push esi
call sub.msjet40.dll_Ordinal_108
mov dword [esp + 0x10], eax
test eax, eax
je 0x1002903c
mov ebx, 0x80004005
jmp 0x10029026
mov ebx, 0x8007000e
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1002903c
push 0x10068de8
push eax
push ebx
push dword [esp + 0x24]
call fcn.10010bd0
jmp 0x10029057
test ebx, ebx
jns 0x1002905f
mov eax, dword [esp + 0x18]
push 0
push 0x10068de8
push ebx
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.100105d0
test ebx, ebx
js 0x10029063
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1002906d
push dword [esp + 0x60]
push esi
call sub.msjet40.dll_Ordinal_108
mov edx, dword [esp + 0x20]
test edx, edx
je 0x10029085
mov eax, dword [0x1007a1e0]
test eax, eax
je 0x10029085
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
mov ecx, dword [esp + 0x480]
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003dba2
add esp, 0x474
ret 0x14
call fcn.1003e83e
int3