Function at 0x10028cb0
Capabilities:
Enumerate files on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1e54
call fcn.1003c420
mov eax, dword [0x100416e4]
xor eax, esp
mov dword [esp + 0x1e50], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, dword [ebp + 0x1c]
mov esi, edx
push 0x30
mov dword [esp + 0x18], eax
mov ebx, ecx
lea eax, [esp + 0x5c]
mov dword [esp + 0x2c], edi
push 0
push eax
call sub.msvcrt.dll_memset
xor ecx, ecx
mov dword [esp + 0x58], 0
lea edx, [ebx + 0x68]
mov dword [esp + 0x2c], 0
add esp, 0xc
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], 1
mov dword [esp + 0x5c], 0xffffffff
cmp dword [edx], ecx
je 0x10028d42
mov ecx, dword [ebx + 0xc]
call fcn.1001ae30
lea edx, [ebx + 0x68]
mov eax, dword [ebx + 0x1c]
test al, 1
je 0x10028d75
push 0
push ebx
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
push edx
push dword [ebx + 0xc]
mov edx, 0x10001ba0
mov ecx, 0x2b
call fcn.1001a230
or edi, 0xffffffff
jmp 0x10029c05
movzx ecx, word [ebx + 0x14]
test cx, cx
je 0x10028d83
cmp ecx, 3
jne 0x10028db7
test eax, 0x200000
jne 0x10028db7
mov eax, dword [ebx + 0xc]
mov ecx, 0x6a
push 0
push ebx
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
push edx
push eax
mov edx, 0x10001ba0
call fcn.1001a230
or edi, 0xffffffff
jmp 0x10029c05
mov ecx, ebx
call fcn.100285b0
test ax, ax
je 0x10028dd0
mov ecx, ebx
call fcn.100285b0
cmp ax, 1
jne 0x10028d6d
mov dx, word [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
test esi, esi
je 0x10028e30
cmp ax, 1
je 0x10028dea
cmp ax, 0xfffd
jne 0x10028e30
cmp word [esi], 0x25
jne 0x10028e30
test ecx, ecx
je 0x10028e85
test dx, dx
je 0x10028e03
cmp word [ecx], 0
jne 0x10028e30
cmp dword [esp + 0x14], 0
mov eax, dword [ebp + 8]
je 0x10028e30
cmp word [ebp + 0x18], 0
je 0x10028e22
mov edi, dword [esp + 0x14]
cmp word [edi], 0
mov edi, dword [esp + 0x28]
jne 0x10028e30
mov edx, 1
mov dword [esp + 0x18], edx
jmp 0x10029057
test ecx, ecx
je 0x10028e85
cmp dx, 1
je 0x10028e40
cmp dx, 0xfffd
jne 0x10028e85
cmp word [ecx], 0x25
jne 0x10028e85
test esi, esi
je 0x10028e85
test ax, ax
je 0x10028e55
cmp word [esi], 0
jne 0x10028e85
mov edx, dword [esp + 0x14]
test edx, edx
je 0x10028e85
cmp word [ebp + 0x18], 0
je 0x10028e6a
cmp word [edx], 0
jne 0x10028e85
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x68]
push ecx
push ebx
push eax
mov ecx, 0x6a
call fcn.1001acc0
or edi, 0xffffffff
jmp 0x10029c05
test edi, edi
je 0x10028ee4
mov dx, word [ebp + 0x20]
cmp dx, 1
je 0x10028e99
cmp dx, 0xfffd
jne 0x10028ee4
cmp word [edi], 0x25
jne 0x10028ee4
test esi, esi
je 0x10028ee4
test ax, ax
je 0x10028eae
cmp word [esi], 0
jne 0x10028ee4
test ecx, ecx
je 0x10028ee4
cmp word [ebp + 0x10], 0
je 0x10028ebf
cmp word [ecx], 0
jne 0x10028ee4
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 0x18]
test edi, edi
je 0x10028ee7
test dx, dx
je 0x10028ed5
cmp word [edi], 0
jne 0x10028ee7
mov ecx, ebx
call fcn.10029cb0
movzx edi, ax
jmp 0x10029c05
mov edx, dword [ebp + 0x18]
push 0xb08c
push edx
push dword [esp + 0x1c]
mov edx, esi
mov dword [esp + 0x24], 0
push ecx
push ecx
push eax
mov ecx, ebx
call fcn.10005470
movzx edi, ax
test di, di
je 0x10028f1e
cmp di, 0x64
jne 0x10029c05
xor edi, edi
jmp 0x10029c05
push 0x104
lea eax, [esp + 0x1a4c]
mov ecx, esi
push eax
lea edx, [ebp + 8]
call fcn.10032ca0
mov ecx, dword [esp + 0x14]
lea edx, [ebp + 0x18]
mov esi, eax
lea eax, [esp + 0xa10]
push 0x104
push eax
call fcn.10032ca0
push ecx
lea ecx, [esp + 0xa14]
mov edx, eax
push ecx
mov ecx, ebx
call fcn.100057c0
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
je 0x10028ff7
push 0x25
push edi
call dword [sym.imp.msvcrt.dll_wcschr]
add esp, 8
test eax, eax
jne 0x10028f94
push 0x5f
push edi
call dword [sym.imp.msvcrt.dll_wcschr]
add esp, 8
test eax, eax
jne 0x10028f94
mov dword [esp + 0x44], edi
mov eax, dword [ebp + 0x18]
cmp ax, 1
jle 0x10028faa
cmp word [edi], 0x22
jne 0x10028faa
cmp word [edi + 2], 0x22
jne 0x10028fb7
cmp word [edi], 0x60
jne 0x10028ff7
cmp word [edi + 2], 0x60
je 0x10028ff7
cwde
dec eax
push eax
push edi
lea eax, [esp + 0x500]
push 0x104
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy_s]
lea eax, [esp + 0x50a]
push eax
lea eax, [esp + 0x304]
push 0x104
push eax
call dword [sym.imp.msvcrt.dll_wcscpy_s]
lea eax, [esp + 0x30c]
add esp, 0x1c
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x28]
test edi, edi
je 0x1002904a
cmp word [ebp + 0x20], 0
je 0x1002904a
cmp word [edi], 0
je 0x1002904a
push 0x104
lea eax, [esp + 0x1c54]
mov ecx, edi
push eax
lea edx, [ebp + 0x20]
call fcn.10032ca0
mov edi, eax
mov dword [esp + 0x28], edi
test edi, edi
je 0x10029040
cmp word [edi], 0
je 0x10029040
mov ecx, edi
call fcn.1002ad10
mov dword [esp + 0x2c], eax
jmp 0x10029052
mov dword [esp + 0x2c], 0x20002
jmp 0x10029052
mov dword [esp + 0x2c], 0x20072
mov eax, dword [ebp + 8]
xor edx, edx
test esi, esi
je 0x1002906c
movzx ecx, word [esi]
test cx, cx
je 0x1002906c
cmp ecx, 0x25
je 0x1002906c
mov ecx, esi
jmp 0x100290a4
cmp dx, 1
je 0x10029093
test esi, esi
je 0x10029093
cmp ax, 1
je 0x10029082
cmp ax, 0xfffd
jne 0x10029093
cmp word [esi], 0x25
jne 0x10029093
mov esi, 2
mov dword [esp + 0x18], esi
jmp 0x100290ac
mov eax, dword [ebx + 0x64]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x100290a8
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x18]
push 0xb08c
push 0x100416ec
lea eax, [esp + 0x2e4]
mov edx, 5
push eax
push ecx
push 0x10042eb0
mov ecx, ebx
call fcn.1002b240
movzx edi, ax
test di, di
je 0x100290e2
cmp di, 1
jne 0x10029bb7
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10029100
cmp word [ebp + 0x20], 0
je 0x100290f7
cmp word [eax], 0
jne 0x10029100
test si, si
je 0x10028f17
xor eax, eax
mov dword [esp + 0x28], eax
test di, di
je 0x10029115
cmp di, 1
jne 0x10029b9b
test eax, eax
jne 0x10029b9b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10029141
mov ecx, dword [ebx + 0x64]
cmp eax, dword [ecx + 0x58]
je 0x10029141
push 0
push eax
push dword [ecx + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_107]
mov dword [esp + 0x30], 0
mov eax, dword [ebx + 0x64]
push 1
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_153]
mov dword [esp + 0x10], 0
cmp si, 2
je 0x10029174
cmp si, 1
je 0x10029174
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x10028f17
jmp 0x1002930e
mov esi, dword [ebx + 0x64]
mov eax, dword [esi + 0xac]
movzx ecx, byte [esi + 0xa9]
mov ecx, dword [eax + ecx*4 + 0x3c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x24], ecx
test eax, eax
jne 0x100291ab
xor edx, edx
mov ecx, ebx
call fcn.1002a740
mov dword [esi + 0x2c], eax
test eax, eax
je 0x1002926d
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x100291f3
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x100291ec
push eax
mov eax, dword [esi + 0xac]
push dword [eax + 0xa4]
lea eax, [esp + 0x708]
push 0x186
push 0x187
push eax
call dword [sym.imp.msvcrt.dll__snwprintf_s]
add esp, 0x14
mov dword [esp + 0x20], 1
jmp 0x100292ff
inc ecx
mov dword [esp + 0x20], ecx
jmp 0x10029271
cmp dword [esp + 0x20], 0
jne 0x10029245
push ecx
push eax
push 0x10003b74
push 0x186
lea eax, [esp + 0xc28]
push 0x187
push eax
call dword [sym.imp.msvcrt.dll__snwprintf_s]
add esp, 0x18
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0xc1c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x34], eax
cmp eax, 0xffffffff
jne 0x1002928d
mov dword [esp + 0x20], 1
jmp 0x10029271
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x1002928d
push dword [esp + 0x34]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [esp + 0x34], 0
inc dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
jmp 0x10029312
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x100292ca
cmp word [edx], 0
je 0x100292ca
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esp + 0x24], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100292a3
sub ecx, dword [esp + 0x24]
sar ecx, 1
cmp word [edx + ecx*2 - 2], 0x5c
jne 0x100292ca
mov eax, dword [esi + 0xac]
mov eax, dword [eax + 0xac]
jmp 0x100292d6
mov eax, dword [esi + 0xac]
mov eax, dword [eax + 0xa8]
lea ecx, [esp + 0xb4]
push ecx
push edx
push eax
push 0x186
lea eax, [esp + 0x710]
push 0x187
push eax
call dword [sym.imp.msvcrt.dll__snwprintf_s]
add esp, 0x18
inc dword [esp + 0x20]
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x700]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x28]
cmp si, 2
je 0x10029329
xor esi, esi
mov dword [esp + 0x1c], esi
cmp word [esp + 0x18], si
jne 0x100294a5
xor esi, esi
mov dword [esp + 0x1c], esi
test eax, eax
jne 0x100294a5
lea eax, [esp + 0x30]
mov edx, ecx
push eax
push 0x30e
lea eax, [esp + 0x708]
mov ecx, ebx
push eax
call fcn.10031100
movsx esi, ax
mov dword [esp + 0x1c], esi
test esi, esi
jne 0x10029b3a
cmp word [esp + 0x18], 1
je 0x100294a5
lea ecx, [ecx]
push 0x30
lea eax, [esp + 0x5c]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x5c], 0xffffffff
lea eax, [esp + 0x58]
push 1
push 0x30
push eax
push dword [esp + 0x50]
mov eax, dword [ebx + 0x64]
push 0
push dword [esp + 0x50]
push dword [esp + 0x48]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_140]
mov esi, dword [ebx + 0x64]
mov dword [esp + 0x1c], eax
cmp byte [esi + 0xa8], 0x1b
movzx edx, byte [esi + 0xa9]
mov ecx, dword [esi + 0xac]
mov ecx, dword [ecx + edx*4 + 0x3c]
je 0x100293fb
test ecx, ecx
jne 0x1002942e
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x1002942e
cmp word [ecx], 0
je 0x1002942e
push 0x23
push ecx
call dword [sym.imp.msvcrt.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x1002942e
mov ecx, dword [esp + 0x14]
sub eax, ecx
sar eax, 1
xor edx, edx
jmp 0x1002942a
test ecx, ecx
jne 0x1002942e
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x1002942e
cmp word [ecx], 0
je 0x1002942e
push 0x23
push ecx
call dword [sym.imp.msvcrt.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x1002942e
mov ecx, dword [esp + 0x14]
mov edx, 0x2e
sub eax, ecx
sar eax, 1
mov word [ecx + eax*2], dx
mov esi, dword [esp + 0x1c]
cmp esi, 0xfffffc15
jne 0x10029452
cmp dword [esp + 0x3c], 0
jne 0x10029b18
mov dword [esp + 0x3c], 1
jmp 0x10029370
cmp esi, 0xfffff9bd
je 0x1002949a
cmp esi, 0xfffffae7
je 0x1002949a
test esi, esi
jne 0x10029b18
cmp dword [esp + 0x40], esi
je 0x100294a5
mov eax, dword [ebx + 0x64]
push esi
push Ordinal_3
push dword [esp + 0x64]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_156]
mov esi, eax
mov dword [esp + 0x1c], esi
cmp esi, 0xfffff9bd
je 0x10029b4b
jmp 0x100294a5
cmp dword [esp + 0x40], 0
jne 0x10029b4b
mov ecx, dword [ebx + 0x64]
lea eax, [esp + 0x1640]
push 0x201
push eax
lea edx, [esp + 0x708]
call fcn.1000c480
test di, di
je 0x100294d0
cmp di, 1
jne 0x10029afc
test esi, esi
jne 0x10029afc
cmp word [esp + 0x10], si
jne 0x10029afc
mov eax, dword [ebx + 0x64]
push esi
push dword [ebx + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_159]
mov edi, dword [ebx + 0x64]
test eax, eax
js 0x10029a94
lea ecx, [esp + 0x1640]
lea edx, [ecx + 2]
jmp 0x10029510
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029510
sub ecx, edx
push 0
sar ecx, 1
push 0
lea eax, [ecx + ecx]
push eax
lea eax, [esp + 0x164c]
push eax
push dword [esp + 0x2f0]
push dword [ebx + 0x20]
push dword [edi + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_172]
test eax, eax
js 0x10029a40
mov eax, dword [esp + 0x18]
xor edi, edi
test ax, ax
je 0x1002955f
cmp ax, 2
jne 0x10029912
push 0
push 0
lea eax, [esp + 0x50]
push eax
push 0x206
lea eax, [esp + 0x300]
push eax
push dword [esp + 0x7c]
mov eax, dword [ebx + 0x64]
push dword [esp + 0x74]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_167]
test eax, eax
jne 0x10029b87
mov eax, dword [esp + 0x48]
shr eax, 1
mov dword [esp + 0x40], esi
cmp eax, 0x104
jae 0x10029b70
add eax, eax
cmp eax, 0x208
jae 0x10029c1f
xor ecx, ecx
mov word [esp + eax + 0x2f0], cx
mov eax, dword [ebx + 0x64]
movzx ecx, byte [eax + 0xa9]
mov eax, dword [eax + 0xac]
cmp dword [eax + ecx*4 + 0x3c], esi
jne 0x1002960c
cmp word [esp + 0x2f0], si
je 0x1002960c
lea eax, [esp + 0x2f0]
push 0x23
push eax
call dword [sym.imp.msvcrt.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x1002960c
lea ecx, [esp + 0x2f0]
sub eax, ecx
mov ecx, 0x2e
sar eax, 1
mov word [esp + eax*2 + 0x2f0], cx
push 0
push 0
push dword [esp + 0x50]
lea eax, [esp + 0x2fc]
push eax
push dword [esp + 0x2f8]
mov eax, dword [ebx + 0x64]
push dword [ebx + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_172]
test eax, eax
js 0x10029b4f
xor eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10029665
sub esp, 8
lea ecx, [esp + 0x2f8]
mov edx, eax
call fcn.1002a8b0
test eax, eax
jne 0x10029665
lea esi, [eax + 1]
jmp 0x10029790
push 8
lea eax, [esp + 0x2f4]
push eax
push 0x10003b64
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x10029689
lea esi, [eax + 1]
jmp 0x10029790
lea eax, [esp + 0x38]
push eax
push ecx
lea eax, [esp + 0x500]
mov ecx, ebx
push eax
lea edx, [esp + 0x64]
call fcn.10030830
test byte [esp + 0x38], 0x20
movzx edi, ax
je case.0x100296eb.0
push 0
push 0
push 0
push 4
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x90]
mov eax, dword [ebx + 0x64]
push dword [esp + 0x74]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_167]
mov dword [esp + 0x1c], eax
movsx eax, word [esp + 0x50]
cmp eax, 0x80
ja case.0x100296eb.1
movzx eax, byte [eax + 0x10029c2c]
jmp dword [eax*4 + 0x10029c24]
lea ecx, [esp + 0x4f8]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029700
sub ecx, edx
sar ecx, 1
add ecx, ecx
je 0x1002974e
push 0
push 0
push ecx
lea eax, [esp + 0x504]
push eax
push dword [esp + 0x2ec]
mov eax, dword [ebx + 0x64]
push dword [ebx + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_172]
test eax, eax
je 0x1002974e
mov edx, dword [ebx + 0x64]
lea ecx, [ebx + 0x68]
push ebx
push ecx
mov ecx, eax
call fcn.1001ac20
or edi, 0xffffffff
jmp 0x10029750
xor edi, edi
xor esi, esi
cmp word [esp + 0x4f8], si
jne 0x10029761
mov esi, 1
mov eax, dword [ebx + 0x64]
test dword [eax + 0x5c], 0x100
jne 0x1002977c
mov eax, dword [esp + 0x2c]
test dword [esp + 0x38], eax
jne 0x1002977c
mov esi, 1
test di, di
je 0x1002978b
cmp di, 1
jne 0x100298f2
test si, si
je 0x1002979e
cmp dword [esp + 0x2c], 0x20000
jne 0x100298f2
mov eax, dword [ebx + 0x64]
cmp byte [eax + 0xa8], 0x16
jne 0x100298f2
mov al, byte [eax + 0xa9]
test al, al
je 0x100297c0
cmp al, 3
jne 0x100298f2
test byte [esp + 0x38], 2
je 0x100298f2
lea eax, [esp + 0x2f0]
push 0x24
push eax
call dword [sym.imp.msvcrt.dll_wcsrchr]
mov edx, eax
add esp, 8
test edx, edx
je 0x100298e6
lea ecx, [esp + 0x2f0]
lea eax, [ecx + 2]
mov dword [esp + 0x54], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100297f6
sub ecx, dword [esp + 0x54]
sar ecx, 1
lea eax, [esp + ecx*2 + 0x2ee]
cmp edx, eax
jne 0x100298dc
xor eax, eax
push 0x104
mov word [esp + 0x4fc], ax
lea eax, [esp + 0x4fc]
push eax
push 0xafcf
push dword [0x10043578]
call dword [sym.imp.USER32.dll_LoadStringW]
cmp word [esp + 0x4f8], 0
jne 0x10029872
mov esi, dword [0x1004338c]
lea eax, [esp + 0x4f8]
push 0x104
push eax
push 0xafcf
mov ecx, esi
call dword [0x10044350]
call esi
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [esp + 0x4f8]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x10029880
sub eax, edx
sar eax, 1
add eax, eax
je 0x100298d8
push 0
push 0
push eax
lea eax, [esp + 0x504]
push eax
push dword [esp + 0x2ec]
mov eax, dword [ebx + 0x64]
push dword [ebx + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_172]
test eax, eax
je 0x100298d8
mov edx, dword [ebx + 0x64]
lea ecx, [ebx + 0x68]
push ebx
push ecx
mov ecx, eax
call fcn.1001ac20
or edi, 0xffffffff
xor esi, esi
test dword [esp + 0x2c], 0x20000
jmp 0x100298eb
xor edi, edi
xor esi, esi
test dword [esp + 0x2c], 0x20000
jmp 0x100298eb
test byte [esp + 0x2c], 2
jne 0x100298f2
mov esi, 1
cmp di, 0x64
jne 0x10029903
mov esi, 1
mov dword [esp + 0x10], esi
jmp 0x10029912
test di, di
je 0x10029912
cmp di, 1
jne 0x10029afc
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x20]
mov eax, dword [eax + 0x54]
test si, si
jne 0x10029930
push 0
push 0
push 0
push ecx
push eax
call dword [sym.imp.msjet40.dll_Ordinal_179]
jmp 0x1002993a
push 3
push ecx
push eax
call dword [sym.imp.msjet40.dll_Ordinal_159]
test eax, eax
js 0x10029a40
mov eax, dword [esp + 0x18]
inc dword [esp + 0x4c]
movzx eax, ax
sub eax, 0
je 0x10029a07
sub eax, 1
je 0x100299f4
sub eax, 1
jne 0x100299e9
push eax
mov eax, dword [ebx + 0x64]
push 1
push dword [esp + 0x64]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_156]
mov esi, eax
mov dword [esp + 0x1c], esi
cmp esi, 0xfffff9bd
jne 0x100299ed
mov esi, dword [ebx + 0x64]
mov edi, dword [esp + 0x5c]
push edi
mov dword [esp + 0x14], 1
push dword [esi + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_108]
cmp eax, 0xfffffbac
jne 0x100299ce
mov ecx, dword [esi + 0x7c]
lea edx, [esi + 0x74]
call fcn.1001a1b0
test eax, eax
je 0x100299e1
mov esi, dword [esp + 0x1c]
mov dword [eax + 8], edi
xor edi, edi
mov dword [esp + 0x5c], 0xffffffff
jmp 0x100294c1
test eax, eax
jns 0x100299e1
mov edx, dword [ebx + 0x64]
lea ecx, [ebx + 0x68]
push ebx
push ecx
mov ecx, eax
call fcn.1001ac20
mov dword [esp + 0x5c], 0xffffffff
mov esi, dword [esp + 0x1c]
xor edi, edi
jmp 0x100294c1
mov esi, dword [esp + 0x1c]
xor edi, edi
mov dword [esp + 0x10], 1
jmp 0x100294c1
mov eax, dword [ebx + 0x64]
push 0
push 1
push dword [esp + 0x64]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_156]
mov esi, eax
mov dword [esp + 0x1c], esi
cmp esi, 0xfffff9bd
jne 0x100299ed
mov dword [esp + 0x28], 1
xor edi, edi
mov dword [esp + 0x10], 1
jmp 0x100294c1
mov esi, dword [ebx + 0x64]
lea edx, [esp + 0x10]
mov dword [esp + 0x10], eax
mov ecx, esi
push 0x514
lea eax, [esp + 0xc1c]
push eax
call fcn.1001af10
mov ecx, dword [esp + 0x10]
lea edx, [ebx + 0x68]
xor eax, eax
test ecx, ecx
push 0
sets al
push ebx
dec eax
push 0xfffffffffffffffe
and eax, 0xa410
push 0xfffffffffffffffe
push eax
xor eax, eax
test ecx, ecx
setns al
dec eax
and eax, 0xffffa948
add eax, 0xa4d8
push eax
push edx
push dword [esi + 0x7c]
jmp 0x10029ae3
mov dword [esp + 0x10], eax
lea edx, [esp + 0x10]
push 0x514
lea eax, [esp + 0xc1c]
mov ecx, edi
push eax
call fcn.1001af10
mov ecx, dword [esp + 0x10]
xor eax, eax
push 0
test ecx, ecx
push ebx
sets al
dec eax
and eax, 0xa410
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push eax
xor eax, eax
test ecx, ecx
setns al
dec eax
and eax, 0xffffa948
add eax, 0xa4d8
push eax
lea eax, [ebx + 0x68]
push eax
push dword [edi + 0x7c]
xor edx, edx
lea eax, [esp + 0xc38]
test ecx, ecx
setns dl
dec edx
and edx, eax
call fcn.1001a230
or edi, 0xffffffff
mov esi, dword [esp + 0x18]
xor eax, eax
cmp di, 0x64
sete al
dec eax
and eax, edi
movzx edi, ax
mov eax, dword [esp + 0x28]
jmp 0x10029106
mov eax, dword [ebx + 0x64]
push 1
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_153]
mov edx, dword [ebx + 0x64]
lea eax, [ebx + 0x68]
push ebx
push eax
mov ecx, esi
call fcn.1001ac20
or edi, 0xffffffff
jmp 0x10029bb7
cmp dword [ebx + 0x68], 0
je 0x10029b4b
mov ecx, dword [ebx + 0xc]
lea edx, [ebx + 0x68]
call fcn.1001ae30
xor edi, edi
jmp 0x10029bb7
mov edx, dword [ebx + 0x64]
lea esi, [ebx + 0x68]
push ebx
push esi
mov ecx, eax
call fcn.1001ac20
mov edx, dword [ebx + 0x64]
or ecx, 0xffffffff
push ebx
push esi
call fcn.1001ac20
or edi, 0xffffffff
jmp 0x10029bb7
push ebx
lea edx, [ebx + 0x68]
mov ecx, 0xfffffc0d
push edx
mov edx, dword [ebx + 0x64]
call fcn.1001ac20
or edi, 0xffffffff
jmp 0x10029bb7
push ebx
lea edx, [ebx + 0x68]
mov ecx, eax
push edx
mov edx, dword [ebx + 0x64]
call fcn.1001ac20
or edi, 0xffffffff
jmp 0x10029bb7
test di, di
je 0x10029bb3
cmp di, 1
je 0x10029bb3
push ecx
mov edx, 0x3e8
mov ecx, ebx
call fcn.10026810
or dword [ebx + 0x1c], 1
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10029bd3
mov ecx, dword [ebx + 0x64]
cmp eax, dword [ecx + 0x58]
cmp eax, dword fs:[ecx + 0x58]
je 0x10029bd3
push 0
push eax
push dword [ecx + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_107]
mov edx, dword [esp + 0x5c]
cmp edx, 0xffffffff
je 0x10029be3
mov ecx, ebx
call fcn.100304b0
test di, di
je 0x10029bf7
cmp di, 1
je 0x10029bf7
xor edx, edx
mov ecx, ebx
call fcn.10026a90
mov ecx, dword [ebx + 0x64]
push 1
push dword [ecx + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_153]
mov ecx, dword [esp + 0x1e5c]
mov ax, di
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1003bd00
mov esp, ebp
pop ebp
ret 0x1c
call fcn.1003be48
xchg esi, eax
add dl, byte [eax]
ja 0x10029bc1
add dl, byte [eax]
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add ah, cl
int3