Function at 0x100290f0
Capabilities:
Enumerate files on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1e54
call fcn.1003cb10
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 + 0x28], 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 0x10029182
mov ecx, dword [ebx + 0xc]
call fcn.1001b160
lea edx, [ebx + 0x68]
mov eax, dword [ebx + 0x1c]
test al, 1
je 0x100291b5
push 0
push ebx
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
push edx
push dword [ebx + 0xc]
mov edx, 0x10001bb0
mov ecx, 0x2b
call fcn.1001a550
or edi, 0xffffffff
jmp 0x1002a07a
movzx ecx, word [ebx + 0x14]
test cx, cx
je 0x100291c3
cmp ecx, 3
jne 0x100291f7
test eax, 0x200000
jne 0x100291f7
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, 0x10001bb0
call fcn.1001a550
or edi, 0xffffffff
jmp 0x1002a07a
mov ecx, ebx
call fcn.10028990
test ax, ax
je 0x10029210
mov ecx, ebx
call fcn.10028990
cmp ax, 1
jne 0x100291ad
mov dx, word [ebp + 0x10]
mov ecx, dword [ebp + 8]
test esi, esi
je 0x10029270
cmp cx, 1
je 0x10029227
cmp cx, 0xfffd
jne 0x10029270
cmp word [esi], 0x25
jne 0x10029270
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100292c8
test dx, dx
je 0x10029243
cmp word [eax], 0
jne 0x10029277
cmp dword [esp + 0x14], 0
mov ecx, dword [ebp + 8]
je 0x10029277
cmp word [ebp + 0x18], 0
je 0x10029262
mov edi, dword [esp + 0x14]
cmp word [edi], 0
mov edi, dword [esp + 0x28]
jne 0x10029277
mov edx, 1
mov dword [esp + 0x20], edx
jmp 0x1002949a
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100292c8
cmp dx, 1
je 0x10029283
cmp dx, 0xfffd
jne 0x100292c8
cmp word [eax], 0x25
jne 0x100292c8
test esi, esi
je 0x100292c8
test cx, cx
je 0x10029298
cmp word [esi], 0
jne 0x100292c8
mov edx, dword [esp + 0x14]
test edx, edx
je 0x100292c8
cmp word [ebp + 0x18], 0
je 0x100292ad
cmp word [edx], 0
jne 0x100292c8
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x68]
push ecx
push ebx
push eax
mov ecx, 0x6a
call fcn.1001aff0
or edi, 0xffffffff
jmp 0x1002a07a
test edi, edi
je 0x10029327
mov dx, word [ebp + 0x20]
cmp dx, 1
je 0x100292dc
cmp dx, 0xfffd
jne 0x10029327
cmp word [edi], 0x25
jne 0x10029327
test esi, esi
je 0x10029327
test cx, cx
je 0x100292f1
cmp word [esi], 0
jne 0x10029327
test eax, eax
je 0x10029327
cmp word [ebp + 0x10], 0
je 0x10029302
cmp word [eax], 0
jne 0x10029327
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 0x18]
test edi, edi
je 0x1002932a
test dx, dx
je 0x10029318
cmp word [edi], 0
jne 0x1002932a
mov ecx, ebx
call fcn.1002a130
movzx edi, ax
jmp 0x1002a07a
mov edx, dword [ebp + 0x18]
push 0xb08c
push edx
push dword [esp + 0x1c]
mov edx, esi
push ecx
push eax
push ecx
mov ecx, ebx
call fcn.10005520
movzx edi, ax
test di, di
je 0x10029359
cmp di, 0x64
jne 0x1002a07a
xor edi, edi
jmp 0x1002a07a
push 0x104
lea eax, [esp + 0x1a4c]
mov ecx, esi
push eax
lea edx, [ebp + 8]
call fcn.10033230
mov ecx, dword [esp + 0x14]
lea edx, [ebp + 0x18]
mov esi, eax
lea eax, [esp + 0xa10]
push 0x104
push eax
call fcn.10033230
push ecx
lea ecx, [esp + 0xa14]
mov edx, eax
push ecx
mov ecx, ebx
call fcn.10005880
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
je 0x10029432
push 0x25
push edi
call dword [sym.imp.msvcrt.dll_wcschr]
add esp, 8
test eax, eax
jne 0x100293cf
push 0x5f
push edi
call dword [sym.imp.msvcrt.dll_wcschr]
add esp, 8
test eax, eax
jne 0x100293cf
mov dword [esp + 0x44], edi
mov eax, dword [ebp + 0x18]
cmp ax, 1
jle 0x100293e5
cmp word [edi], 0x22
jne 0x100293e5
cmp word [edi + 2], 0x22
jne 0x100293f2
cmp word [edi], 0x60
jne 0x10029432
cmp word [edi + 2], 0x60
je 0x10029432
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 0x10029485
cmp word [ebp + 0x20], 0
je 0x10029485
cmp word [edi], 0
je 0x10029485
push 0x104
lea eax, [esp + 0x1c54]
mov ecx, edi
push eax
lea edx, [ebp + 0x20]
call fcn.10033230
mov edi, eax
mov dword [esp + 0x28], edi
test edi, edi
je 0x1002947b
cmp word [edi], 0
je 0x1002947b
mov ecx, edi
call fcn.1002b1b0
mov dword [esp + 0x2c], eax
jmp 0x1002948d
mov dword [esp + 0x2c], 0x20002
jmp 0x1002948d
mov dword [esp + 0x2c], 0x20072
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [esp + 0x20], edx
test esi, esi
je 0x100294d2
movzx eax, word [esi]
test ax, ax
je 0x100294ab
cmp eax, 0x25
je 0x100294ab
mov ecx, esi
jmp 0x100294e3
cmp dx, 1
je 0x100294d2
test esi, esi
je 0x100294d2
cmp cx, 1
je 0x100294c1
cmp cx, 0xfffd
jne 0x100294d2
cmp word [esi], 0x25
jne 0x100294d2
mov esi, 2
mov dword [esp + 0x20], esi
jmp 0x100294eb
mov eax, dword [ebx + 0x64]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x24], ecx
test ecx, ecx
jne 0x100294e7
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x20]
push 0xb08c
push 0x100416ec
lea eax, [esp + 0x2e4]
mov edx, 5
push eax
push ecx
push 0x10042e48
mov ecx, ebx
call fcn.1002b6f0
movzx edi, ax
test di, di
je 0x10029521
cmp di, 1
jne 0x1002a02c
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1002953f
cmp word [ebp + 0x20], 0
je 0x10029536
cmp word [eax], 0
jne 0x1002953f
test si, si
je 0x10029352
xor eax, eax
mov dword [esp + 0x28], eax
test di, di
je 0x10029554
cmp di, 1
jne 0x1002a01b
test eax, eax
jne 0x1002a010
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10029580
mov ecx, dword [ebx + 0x64]
cmp eax, dword [ecx + 0x58]
je 0x10029580
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 0x100295bb
cmp si, 1
je 0x100295bb
mov edx, dword [esp + 0x24]
test edx, edx
je 0x10029352
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
jmp 0x10029778
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 0x100295f2
xor edx, edx
mov ecx, ebx
call fcn.1002abd0
mov dword [esi + 0x2c], eax
test eax, eax
je 0x100296d8
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x1002964c
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x10029633
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 + 0x1c], 1
jmp 0x1002975f
inc ecx
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], ecx
jmp 0x1002976a
cmp dword [esp + 0x1c], 0
jne 0x100296b0
push ecx
push eax
push 0x10003b5c
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 0x100296ed
mov ecx, 1
mov dword [esp + 0x1c], 1
mov dword [esp + 0x28], ecx
xor edx, edx
mov dword [esp + 0x10], ecx
jmp 0x1002976a
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x100296ed
push dword [esp + 0x34]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [esp + 0x34], 0
inc dword [esp + 0x1c]
mov ecx, 1
mov dword [esp + 0x28], ecx
xor edx, edx
mov dword [esp + 0x10], ecx
jmp 0x1002976a
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x1002972a
cmp word [edx], 0
je 0x1002972a
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esp + 0x24], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029703
sub ecx, dword [esp + 0x24]
sar ecx, 1
cmp word [edx + ecx*2 - 2], 0x5c
jne 0x1002972a
mov eax, dword [esi + 0xac]
mov eax, dword [eax + 0xac]
jmp 0x10029736
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 + 0x1c]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x700]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], edx
cmp ax, 2
je 0x10029787
xor esi, esi
mov dword [esp + 0x18], esi
test ax, ax
jne 0x10029908
xor esi, esi
mov dword [esp + 0x18], esi
test ecx, ecx
jne 0x10029908
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
push 0x30e
lea eax, [esp + 0x708]
push eax
call fcn.10031620
movsx esi, ax
mov dword [esp + 0x18], esi
test esi, esi
jne 0x10029faf
cmp word [esp + 0x20], 1
je 0x10029908
lea esp, [esp]
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 + 0x18], eax
cmp byte [esi + 0xa8], 0x1b
movzx edx, byte [esi + 0xa9]
mov ecx, dword [esi + 0xac]
lea ecx, [ecx + edx*4]
je 0x1002985c
cmp dword [ecx + 0x3c], 0
jne 0x10029891
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x10029891
cmp word [ecx], 0
je 0x10029891
push 0x23
push ecx
call dword [sym.imp.msvcrt.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x10029891
mov ecx, dword [esp + 0x14]
sub eax, ecx
sar eax, 1
xor edx, edx
jmp 0x1002988d
cmp dword [ecx + 0x3c], 0
jne 0x10029891
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x10029891
cmp word [ecx], 0
je 0x10029891
push 0x23
push ecx
call dword [sym.imp.msvcrt.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x10029891
mov ecx, dword [esp + 0x14]
mov edx, 0x2e
sub eax, ecx
sar eax, 1
mov word [ecx + eax*2], dx
mov esi, dword [esp + 0x18]
cmp esi, 0xfffffc15
jne 0x100298b5
cmp dword [esp + 0x3c], 0
jne 0x10029f8d
mov dword [esp + 0x3c], 1
jmp 0x100297d0
cmp esi, 0xfffff9bd
je 0x100298fd
cmp esi, 0xfffffae7
je 0x100298fd
test esi, esi
jne 0x10029f8d
cmp dword [esp + 0x40], esi
je 0x10029908
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 + 0x18], esi
cmp esi, 0xfffff9bd
je 0x10029fc0
jmp 0x10029908
cmp dword [esp + 0x40], 0
jne 0x10029fc0
mov ecx, dword [ebx + 0x64]
lea eax, [esp + 0x1640]
push 0x201
push eax
lea edx, [esp + 0x708]
call fcn.1000c610
test di, di
je 0x10029933
cmp di, 1
jne 0x10029f71
test esi, esi
jne 0x10029f71
cmp word [esp + 0x10], si
jne 0x10029f71
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 0x10029f09
lea ecx, [esp + 0x1640]
lea edx, [ecx + 2]
jmp 0x10029970
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029970
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 0x10029eb5
mov eax, dword [esp + 0x20]
xor edi, edi
test ax, ax
je 0x100299bf
cmp ax, 2
jne 0x10029e1e
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 0x10029ffc
mov eax, dword [esp + 0x48]
shr eax, 1
mov dword [esp + 0x40], esi
cmp eax, 0x104
jae 0x10029fe5
add eax, eax
cmp eax, 0x208
jae 0x1002a094
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 0x10029a6c
cmp word [esp + 0x2f0], si
je 0x10029a6c
lea eax, [esp + 0x2f0]
push 0x23
push eax
call dword [sym.imp.msvcrt.dll_wcsrchr]
add esp, 8
test eax, eax
je 0x10029a6c
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 0x10029fc4
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10029ac5
sub esp, 8
lea ecx, [esp + 0x2f8]
mov edx, eax
call fcn.1002ad40
test eax, eax
jne 0x10029ac5
lea esi, [eax + 1]
jmp 0x10029bf0
push 8
lea eax, [esp + 0x2f4]
push eax
push 0x10003b4c
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x10029ae9
lea esi, [eax + 1]
jmp 0x10029bf0
lea eax, [esp + 0x38]
push eax
push ecx
lea eax, [esp + 0x500]
mov ecx, ebx
push eax
lea edx, [esp + 0x64]
call fcn.10030d20
test byte [esp + 0x38], 0x20
movzx edi, ax
je case.0x10029b4b.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 + 0x18], eax
movsx eax, word [esp + 0x50]
cmp eax, 0x80
ja case.0x10029b4b.1
movzx eax, byte [eax + 0x1002a0a4]
jmp dword [eax*4 + 0x1002a09c]
lea ecx, [esp + 0x4f8]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029b60
sub ecx, edx
sar ecx, 1
add ecx, ecx
je 0x10029bae
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 0x10029bae
mov edx, dword [ebx + 0x64]
lea ecx, [ebx + 0x68]
push ebx
push ecx
mov ecx, eax
call fcn.1001af40
or edi, 0xffffffff
jmp 0x10029bb0
xor edi, edi
xor esi, esi
cmp word [esp + 0x4f8], si
jne 0x10029bc1
mov esi, 1
mov eax, dword [ebx + 0x64]
test dword [eax + 0x5c], 0x100
jne 0x10029bdc
mov eax, dword [esp + 0x2c]
test dword [esp + 0x38], eax
jne 0x10029bdc
mov esi, 1
test di, di
je 0x10029beb
cmp di, 1
jne 0x10029d52
test si, si
je 0x10029bfe
cmp dword [esp + 0x2c], 0x20000
jne 0x10029d52
mov eax, dword [ebx + 0x64]
cmp byte [eax + 0xa8], 0x16
jne 0x10029d52
mov al, byte [eax + 0xa9]
test al, al
je 0x10029c20
cmp al, 3
jne 0x10029d52
test byte [esp + 0x38], 2
je 0x10029d52
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 0x10029d46
lea ecx, [esp + 0x2f0]
lea eax, [ecx + 2]
mov dword [esp + 0x54], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029c56
sub ecx, dword [esp + 0x54]
sar ecx, 1
lea eax, [esp + ecx*2 + 0x2ee]
cmp edx, eax
jne 0x10029d3c
xor eax, eax
push 0x104
mov word [esp + 0x4fc], ax
lea eax, [esp + 0x4fc]
push eax
push 0xafcf
push dword [0x10043518]
call dword [sym.imp.USER32.dll_LoadStringW]
cmp word [esp + 0x4f8], 0
jne 0x10029cd2
mov esi, dword [0x1004332c]
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 ecx, [esp + 0x4f8]
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10029ce0
sub ecx, edx
sar ecx, 1
add ecx, ecx
je 0x10029d38
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 0x10029d38
mov edx, dword [ebx + 0x64]
lea ecx, [ebx + 0x68]
push ebx
push ecx
mov ecx, eax
call fcn.1001af40
or edi, 0xffffffff
xor esi, esi
test dword [esp + 0x2c], 0x20000
jmp 0x10029d4b
xor edi, edi
xor esi, esi
test dword [esp + 0x2c], 0x20000
jmp 0x10029d4b
test byte [esp + 0x2c], 2
jne 0x10029d52
mov esi, 1
cmp di, 0x64
jne 0x10029e0f
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x10], 1
mov eax, dword [eax + 0x54]
push 3
push ecx
push eax
call dword [sym.imp.msjet40.dll_Ordinal_159]
test eax, eax
js 0x10029eb5
mov eax, dword [esp + 0x20]
inc dword [esp + 0x4c]
movzx eax, ax
sub eax, 0
je 0x10029e7c
sub eax, 1
je 0x10029e69
sub eax, 1
jne 0x10029e5e
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 + 0x18], esi
cmp esi, 0xfffff9bd
jne 0x10029e62
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 0x10029e43
mov ecx, dword [esi + 0x7c]
lea edx, [esi + 0x74]
call fcn.1001a4d0
test eax, eax
je 0x10029e56
mov esi, dword [esp + 0x18]
mov dword [eax + 8], edi
xor edi, edi
mov dword [esp + 0x5c], 0xffffffff
jmp 0x10029924
test di, di
je 0x10029e1e
cmp di, 1
jne 0x10029f71
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x20]
mov eax, dword [eax + 0x54]
test si, si
jne 0x10029d6d
push 0
push 0
push 0
push ecx
push eax
call dword [sym.imp.msjet40.dll_Ordinal_179]
jmp 0x10029d77
test eax, eax
jns 0x10029e56
mov edx, dword [ebx + 0x64]
lea ecx, [ebx + 0x68]
push ebx
push ecx
mov ecx, eax
call fcn.1001af40
mov dword [esp + 0x5c], 0xffffffff
mov esi, dword [esp + 0x18]
xor edi, edi
jmp 0x10029924
mov esi, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x10], 1
jmp 0x10029924
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 + 0x18], esi
cmp esi, 0xfffff9bd
jne 0x10029e62
mov dword [esp + 0x28], 1
xor edi, edi
mov dword [esp + 0x10], 1
jmp 0x10029924
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.1001b240
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 0x10029f58
mov dword [esp + 0x10], eax
lea edx, [esp + 0x10]
push 0x514
lea eax, [esp + 0xc1c]
mov ecx, edi
push eax
call fcn.1001b240
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.1001a550
or edi, 0xffffffff
mov esi, dword [esp + 0x20]
xor eax, eax
cmp di, 0x64
sete al
dec eax
and eax, edi
movzx edi, ax
mov eax, dword [esp + 0x28]
jmp 0x10029545
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.1001af40
or edi, 0xffffffff
jmp 0x1002a02c
cmp dword [ebx + 0x68], 0
je 0x10029fc0
mov ecx, dword [ebx + 0xc]
lea edx, [ebx + 0x68]
call fcn.1001b160
xor edi, edi
jmp 0x1002a02c
mov edx, dword [ebx + 0x64]
lea esi, [ebx + 0x68]
push ebx
push esi
mov ecx, eax
call fcn.1001af40
mov edx, dword [ebx + 0x64]
or ecx, 0xffffffff
push ebx
push esi
call fcn.1001af40
or edi, 0xffffffff
jmp 0x1002a02c
push ebx
lea edx, [ebx + 0x68]
mov ecx, 0xfffffc0d
push edx
mov edx, dword [ebx + 0x64]
call fcn.1001af40
or edi, 0xffffffff
jmp 0x1002a02c
push ebx
lea edx, [ebx + 0x68]
mov ecx, eax
push edx
mov edx, dword [ebx + 0x64]
call fcn.1001af40
or edi, 0xffffffff
jmp 0x1002a02c
test di, di
je 0x1002a028
cmp di, 1
je 0x1002a028
push ecx
mov edx, 0x3e8
mov ecx, ebx
call fcn.10026c90
or dword [ebx + 0x1c], 1
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1002a048
mov ecx, dword [ebx + 0x64]
cmp eax, dword [ecx + 0x58]
je 0x1002a048
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 0x1002a058
mov ecx, ebx
call fcn.10030990
test di, di
je 0x1002a06c
cmp di, 1
je 0x1002a06c
xor edx, edx
mov ecx, ebx
call fcn.10026f10
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.1003c3b0
mov esp, ebp
pop ebp
ret 0x1c
call fcn.1003c50a
lea ecx, [ecx]
push edx
wait
add dl, byte [eax]
xlatb
wait
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