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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
xor eax, eax
mov dword [esp + 4], edx
push ebx
push esi
mov si, word [ebp + 0xc]
xor edx, edx
push edi
mov edi, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], ecx
test al, 0x40
je 0x1002513a
lea ecx, [edx + 0x2b]
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
lea eax, [edi + 0x68]
mov edx, 0x10001bb0
push eax
push dword [edi + 0xc]
call fcn.1001a550
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test eax, 0x1000
je 0x10025160
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x10025158
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x2e8]
jmp 0x10025180
mov eax, dword [edi + 0x3fc]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x1002517a
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x304]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
test ecx, ecx
je 0x100251b9
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.1001cd50
movzx ecx, ax
mov dword [esp + 0x38], ecx
test cx, cx
je 0x100251b4
cmp cx, 1
je 0x100251b4
mov ax, cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov ax, word [ebp + 8]
cmp ax, 4
je 0x100252a0
test ecx, ecx
jne 0x100252a0
test byte [edi + 0xcc], 3
je 0x100251f7
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x2b
call fcn.1001aff0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp word [edi + 0x14], 0
je 0x10025250
mov eax, dword [esp + 0x10]
movzx ecx, ax
cmp ecx, dword [edi + 0x98]
jbe 0x1002522c
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x65
call fcn.1001aff0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test ax, ax
je 0x1002529c
mov eax, dword [edi + 0x8c]
cmp dword [eax + ecx*4 - 4], 0
mov eax, dword [esp + 0xc]
jne 0x1002526f
test eax, eax
je 0x10025250
mov edx, 3
mov word [eax + ecx*2 - 2], dx
push ecx
mov ecx, 0x67
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.1001aff0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test eax, eax
je 0x1002529c
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 1
je 0x1002528c
cmp eax, 5
mov ax, word [ebp + 8]
jne 0x100252a0
cmp ax, 1
je 0x100252a0
mov edx, dword [esp + 0xc]
mov eax, 5
mov word [edx + ecx*2 - 2], ax
jmp 0x10025250
mov ax, word [ebp + 8]
test si, si
je 0x100252b5
cmp si, 2
ja 0x100252b5
mov ecx, 0x6a
jmp 0x1002510c
mov esi, dword [esp + 0x10]
mov dword [edi + 0xa8], 0
test si, si
je 0x100252d7
cmp ax, 4
je 0x100252d7
movzx eax, si
mov dword [edi + 0x9c], eax
mov ecx, dword [edi + 0x1c]
test ecx, 0x2000000
je 0x10025318
mov eax, dword [edi + 0xc8]
and ecx, 0xfdfffbff
movzx esi, word [edi + 0xc4]
mov edx, 1
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xc0]
mov dword [edi + 0x1c], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x10], esi
mov ebx, dword [eax + 4]
mov dword [esp + 0x20], ebx
jmp 0x10025323
or ecx, 0x8000000
xor ebx, ebx
mov dword [edi + 0x1c], ecx
mov ax, word [ebp + 8]
cmp ax, 4
je 0x10025352
mov eax, dword [edi + 0x318]
and ecx, 0xdfffffff
mov dword [edi + 0x1c], ecx
test eax, eax
je 0x1002534e
mov dword [eax + 0x58], 0
mov eax, dword [eax + 4]
test eax, eax
jne 0x10025340
mov ax, word [ebp + 8]
test si, si
jne 0x10025398
mov dword [esp + 0x14], 1
cmp ax, 4
je 0x1002538f
cmp dword [ebp + 0x10], 0
jne 0x1002538f
cmp dword [edi + 0x98], 0
je 0x1002537f
mov eax, dword [edi + 0x8c]
cmp dword [eax], 0
jne 0x1002538f
and dword [edi + 0x1c], 0xbfffffff
mov ebx, dword [esp + 0x38]
jmp 0x100261dd
mov esi, 1
mov dword [esp + 0x10], esi
mov ecx, dword [edi + 0x3fc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x100253a9
mov dword [esp + 0x40], eax
cmp dword [ebp + 0x10], 0
je 0x100253d5
cmp word [ebp + 8], 4
je 0x100253d5
add ecx, 0x34
xor edx, edx
call fcn.1001fd70
mov dword [esp + 0x34], eax
test eax, eax
jne 0x100253d1
push ecx
lea ecx, [eax + 0x56]
jmp 0x10025256
mov edx, dword [esp + 0x2c]
movzx eax, word [ebp + 8]
mov dword [esp + 0x5c], eax
lea ecx, [ecx]
test edx, edx
jne 0x100253f1
mov eax, dword [edi + 0x3fc]
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x10025417
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x10025417
cmp dword [ebp + 0x10], 0
jne 0x10025421
or dword [edi + 0x1c], 0x40000000
jmp 0x100254e1
cmp dword [ebp + 0x10], 0
je 0x100254e1
cmp word [ebp + 8], 4
je 0x100254e1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
movzx esi, si
mov edx, dword [eax]
mov eax, dword [edi + 0x3fc]
mov ecx, dword [ecx + 0x20]
lea ebx, [esi - 1]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x1002547e
test ecx, ecx
je 0x10025462
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
imul eax, ebx
add eax, ecx
add eax, edx
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x10025477
mov ecx, dword [edi + 0x88]
mov eax, dword [eax]
jmp 0x100254d1
lea edx, [edx + ebx*4]
add edx, ecx
jmp 0x100254b9
test ecx, ecx
jne 0x10025495
mov dword [0], ecx
mov ecx, dword [edi + 0x88]
mov eax, dword [pe_dos_header]
jmp 0x100254d1
mov eax, ebx
imul eax, dword [esp + 0x50]
add eax, ecx
add eax, edx
mov edx, dword [esp + 0x34]
mov edx, dword [edx + 0x34]
test edx, edx
jne 0x100254b5
mov ecx, dword [edi + 0x88]
mov eax, dword [eax]
jmp 0x100254d1
sub edx, ecx
add edx, eax
mov ecx, dword [edi + 0x88]
mov eax, dword [eax]
mov dword [ecx + esi*4 - 4], eax
test edx, edx
je 0x100254d5
mov ecx, dword [edi + 0x8c]
mov eax, dword [edx]
mov dword [ecx + esi*4 - 4], eax
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
cmp eax, 4
ja case.default.0x100254ee
jmp dword [eax*4 + 0x10026238]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test edx, edx
je 0x10025518
test ecx, ecx
je 0x10025518
movzx eax, si
cmp word [ecx + eax*2 - 2], 1
je 0x100256f6
mov eax, dword [edi + 0x8c]
movzx esi, si
mov eax, dword [eax + esi*4 - 4]
cmp eax, 0xffffffff
jne 0x10025545
test ecx, ecx
je 0x10025538
mov eax, 1
mov word [ecx + esi*2 - 2], ax
test edx, edx
je 0x10025250
jmp 0x100256f6
test eax, eax
jne 0x1002554e
mov eax, 4
push eax
mov eax, dword [edi + 0x88]
lea eax, [eax + esi*4]
add eax, 0xfffffffc
push eax
mov eax, dword [edi + 0x64]
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_151]
mov dword [esp + 0x1c], eax
test eax, eax
jns 0x100255e0
mov ebx, eax
cmp ebx, 0xfffffc07
je 0x100255a7
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
push edi
push ecx
mov ecx, ebx
call fcn.1001af40
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x1002559e
mov eax, 5
mov word [ecx + esi*2 - 2], ax
inc dword [esp + 0x18]
jmp 0x10025f9b
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x100255b9
mov eax, 1
mov word [ecx + esi*2 - 2], ax
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x100256f6
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
mov ecx, ebx
call fcn.1001af40
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [esp + 0x60]
mov ecx, edi
push eax
lea eax, [esp + 0x68]
push eax
push ebx
lea edx, [esi - 1]
call fcn.1001c000
movzx eax, ax
mov dword [esp + 0x38], eax
test ax, ax
je 0x1002561a
cmp ax, 1
je 0x1002561a
inc dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x10025629
mov eax, 5
jmp 0x10025624
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x10025629
xor eax, eax
mov word [ecx + esi*2 - 2], ax
cmp dword [esp + 0x60], 0
je 0x1002564c
mov eax, dword [edi + 0x8c]
mov dword [eax + esi*4 - 4], 0xffffffff
test ecx, ecx
je 0x1002564c
mov eax, 1
mov word [ecx + esi*2 - 2], ax
cmp dword [esp + 0x64], 0
jne 0x10026045
jmp 0x10025f9b
mov edx, dword [edi + 0x64]
mov al, byte [edx + 0xa8]
cmp al, 0x1b
je 0x100252ab
cmp al, 0x16
je 0x100252ab
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025fee
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
test ecx, ecx
je 0x1002573c
test ebx, ebx
je 0x1002573c
movzx eax, si
lea ecx, [ebx + eax*2]
movzx eax, word [ecx - 2]
cmp eax, 1
je 0x100256ba
cmp eax, 5
jne 0x1002573c
inc dword [esp + 0x18]
mov eax, 5
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
mov word [ecx - 2], ax
mov edx, 0x10001bb0
push 0xa4d8
lea eax, [edi + 0x68]
mov ecx, 0x67
push eax
push dword [edi + 0xc]
call fcn.1001a550
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x30]
movzx eax, bx
cmp eax, esi
jae 0x10026198
test edx, edx
je 0x10026198
cmp eax, dword [edi + 0x78]
jb 0x10025724
mov dx, word [ebp + 8]
cmp dx, 4
jne 0x1002619c
inc ebx
xor edx, edx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
jmp 0x100253e0
mov eax, dword [edi + 0x8c]
movzx esi, si
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x10025752
cmp eax, 0xffffffff
jne 0x10025757
mov eax, 4
push eax
mov eax, dword [edi + 0x88]
lea eax, [eax + esi*4]
add eax, 0xfffffffc
push eax
push dword [edi + 0x20]
push dword [edx + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_151]
mov ecx, eax
mov dword [esp + 0x1c], eax
test ecx, ecx
js 0x100257c3
mov eax, dword [edi + 0x64]
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_120]
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
js 0x100257c3
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x100257a6
mov eax, 1
mov word [ecx + esi*2 - 2], ax
mov eax, dword [edi + 0x8c]
mov dword [eax + esi*4 - 4], 0xffffffff
inc dword [edi + 0xa8]
inc dword [esp + 0x3c]
jmp 0x10025f9b
test ebx, ebx
je 0x100257d1
mov eax, 5
mov word [ebx + esi*2 - 2], ax
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x18]
push edi
push eax
call fcn.1001af40
jmp case.default.0x100254ee
mov ecx, dword [edi + 0x64]
mov al, byte [ecx + 0xa8]
cmp al, 0x1b
je 0x100252ab
cmp al, 0x16
je 0x100252ab
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025fee
test edx, edx
jne 0x100258b3
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x14], edx
je 0x10025842
mov edx, dword [esp + 0xc]
test edx, edx
je 0x10025842
movzx eax, si
movzx eax, word [edx + eax*2 - 2]
cmp eax, 1
je 0x100256ee
cmp eax, 5
je 0x100256ee
mov eax, dword [edi + 0x8c]
movzx esi, si
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x10025858
cmp eax, 0xffffffff
jne 0x1002585d
mov eax, 4
push eax
mov eax, dword [edi + 0x88]
lea eax, [eax + esi*4]
add eax, 0xfffffffc
push eax
push dword [edi + 0x20]
push dword [ecx + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_151]
mov ebx, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
jns 0x100258af
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x18]
mov ecx, ebx
push edi
push eax
call fcn.1001af40
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x10025f9b
mov eax, 5
mov word [ecx + esi*2 - 2], ax
jmp 0x10025f9b
mov edx, dword [esp + 0x2c]
movzx eax, word [edi + 0xb8]
sub eax, 2
je 0x100258c9
sub eax, 2
jne case.0x100254ee.4
lea ebx, [eax + 4]
jmp 0x100258d4
mov ebx, 2
jmp 0x100258d4
mov ebx, dword [esp + 0x28]
mov ecx, dword [edi + 0x64]
xor esi, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x50], esi
mov al, byte [ecx + 0xa8]
cmp al, 0x1b
je 0x100252ab
cmp al, 0x16
je 0x100252ab
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025fee
xor eax, eax
cmp word [ebp + 8], 4
sete al
dec eax
and eax, ebx
movzx ebx, ax
movzx eax, bx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], eax
test edx, edx
jne 0x1002597f
movsx eax, bx
push eax
push dword [edi + 0x20]
push dword [ecx + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_159]
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jns 0x1002597f
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x18]
push edi
push eax
call fcn.1001af40
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x10025973
mov eax, dword [esp + 0x10]
mov edx, 5
movzx eax, ax
mov word [ecx + eax*2 - 2], dx
movzx edx, bx
mov dword [esp + 0x28], edx
jmp 0x10025f9b
mov eax, dword [edi + 0x3fc]
cmp word [eax + 0x1c], si
je 0x100260e0
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x10025af1
mov eax, dword [esp + 0x28]
nop
test ax, ax
je 0x100259af
cmp ax, 1
jne 0x10025aed
cmp dword [ebx + 0x24], 0
je 0x10025ade
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x100259c6
mov dword [esp + 0x4c], eax
jmp 0x10025a1b
movsx eax, word [edi + 0x308]
and dword [edi + 0x1c], 0xbfffffff
cmp dword [ebx + 0x24], eax
ja 0x100260bf
lea eax, [esp + 0x4c]
mov edx, ebx
push eax
mov ecx, edi
call fcn.10004f30
movzx esi, ax
mov dword [esp + 0x38], esi
test si, si
je 0x10025a01
cmp si, 1
jne 0x10026001
cmp dword [esp + 0x14], 0
je 0x10025a1b
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x10025a1b
or dword [edi + 0x1c], 0x40000000
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov eax, dword [esp + 0x10]
movzx ecx, ax
mov eax, dword [edi + 0x3fc]
dec ecx
mov edx, dword [eax + 0x28]
mov eax, dword [ebx + 0x20]
test edx, edx
jne 0x10025a83
test eax, eax
je 0x10025a47
mov edx, dword [ebx + 0xc]
imul edx, ecx
add edx, eax
add edx, esi
mov ebx, dword [ebx + 0x34]
mov dword [esp + 0x24], edx
test ebx, ebx
jne 0x10025a59
xor edx, edx
shl ecx, 2
jmp 0x10025a61
shl ecx, 2
lea edx, [ecx + ebx]
add edx, esi
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x30]
test eax, eax
jne 0x10025a78
mov esi, dword [esp + 0x24]
xor edx, edx
jmp 0x10025abe
lea edx, [ecx + eax]
add edx, esi
mov esi, dword [esp + 0x24]
jmp 0x10025abe
test eax, eax
je 0x10025ada
mov ebx, dword [ebx + 0x34]
imul edx, ecx
add edx, eax
add edx, esi
mov dword [esp + 0x24], edx
test ebx, ebx
jne 0x10025aa1
xor edx, edx
mov dword [esp + 0x2c], edx
jmp 0x10025aab
mov ecx, ebx
sub ecx, eax
add ecx, edx
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edx, dword [edx + 0x30]
test edx, edx
je 0x10025abe
sub edx, eax
add edx, esi
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x10025b4d
test esi, esi
jne 0x10025b4d
test edx, edx
jne 0x10025b55
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x100259a0
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
js 0x10025f4a
test si, si
je 0x10025b0c
cmp si, 1
jne 0x10025f4a
lea eax, [esp + 0x6c]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
mov eax, dword [edi + 0x64]
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_179]
mov ebx, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
jns 0x10025dd0
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
mov ecx, ebx
call fcn.1001af40
inc dword [esp + 0x18]
jmp 0x10025e1b
test edx, edx
jne 0x10025b55
lea edx, [esp + 0x68]
test ebx, ebx
jne 0x10025c7c
cmp dword [edx], 0xffffffff
je 0x10025c7c
lea eax, [esp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
movzx ecx, word [eax + 8]
cmp cx, 0xfffe
je 0x10026058
cmp cx, 0xfffd
je 0x10026058
cmp cx, 0xfffc
je 0x10026058
mov eax, dword [esp + 0x20]
movzx eax, word [eax + 8]
cmp ax, 0xfff8
je 0x10025c58
cmp ax, 0xfff7
je 0x10025c58
cmp ax, 0xfff6
je 0x10025c58
cmp ax, 1
je 0x10025c40
cmp ax, 0xc
je 0x10025c40
cmp ax, 0xffff
je 0x10025c40
mov esi, dword [edi + 0x64]
lea eax, [ecx - 0x5b]
cmp ax, 2
lea eax, [ecx - 0x36]
movzx ebx, byte [esi + 0xa9]
jbe 0x10025be9
lea eax, [ecx + 0x1c]
mov esi, dword [esi + 0xac]
movzx eax, ax
cmp cx, 0xfff4
jne 0x10025bff
mov eax, 0x1e
jmp 0x10025c08
test ax, ax
js 0x1002601e
movzx ecx, ax
cmp ax, word [esi + 0x98]
jg 0x1002601e
mov eax, dword [esi + 0x94]
mov dword [esp + 0x28], 0
movsx eax, word [eax + ecx*8 + 4]
lea ecx, [eax + eax*8]
mov eax, dword [esi + ebx*4 + 0x7c]
mov eax, dword [eax + ecx*4 + 8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
jmp 0x10025c80
mov ecx, esi
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10025c45
mov eax, dword [esp + 0x2c]
sub ecx, esi
mov dword [esp + 0x48], ecx
jmp 0x10025c80
mov ecx, esi
lea esi, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10025c60
sub ecx, esi
sar ecx, 1
lea eax, [ecx + ecx]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
jmp 0x10025c80
test edx, edx
je 0x10025c8b
cmp dword [edx], 0xffffffff
jne 0x10025c8b
mov eax, edx
mov dword [esp + 0x2c], eax
mov ebx, dword [esp + 0x20]
mov esi, dword [eax]
movzx eax, word [ebx + 8]
cmp esi, 0xfffffffd
jne 0x10025cdc
cmp ax, 1
je 0x10025cc8
cmp ax, 0xc
je 0x10025cc8
cmp ax, 0xffff
je 0x10025cc8
mov edx, dword [esp + 0x24]
mov esi, edx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10025cb5
sub esi, ecx
sar esi, 1
add esi, esi
jmp 0x10025d27
mov edx, dword [esp + 0x24]
mov esi, edx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x10025cd1
sub esi, ecx
jmp 0x10025d27
cmp ax, 0xfff8
je 0x10025d12
cmp ax, 0xfff7
je 0x10025d12
cmp ax, 0xfff6
je 0x10025d12
cmp ax, 1
je 0x10025d12
cmp ax, 0xc
je 0x10025d12
cmp ax, 0xffff
je 0x10025d12
cmp ax, 0xfffe
je 0x10025d12
cmp ax, 0xfffd
je 0x10025d12
cmp ax, 0xfffc
jne 0x10025d23
mov eax, dword [ebx + 0xc]
cmp eax, esi
jge 0x10025d23
mov esi, eax
mov dword [esp + 0x50], 1
mov edx, dword [esp + 0x24]
cmp esi, 0xfffffffa
je 0x10025ada
cmp esi, 0xfffffffe
je 0x1002606a
cmp esi, 0xffffff9c
jle 0x1002606a
test esi, esi
jns 0x10025d4b
cmp esi, 0xffffffff
jne 0x10025d9d
push dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x34]
push edx
push esi
mov edx, ebx
call fcn.10026510
movzx eax, ax
mov dword [esp + 0x28], eax
test ax, ax
jne 0x10025d83
cmp dword [esp + 0x50], 0
je 0x10025d91
mov edx, dword [esp + 0x2c]
mov dword [edx], esi
or dword [edi + 0x1c], 0x8000000
jmp 0x10025ade
cmp ax, 1
jne 0x10025d91
mov dword [esp + 0x44], 1
or dword [edi + 0x1c], 0x8000000
jmp 0x10025ade
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
lea eax, [edi + 0x68]
mov edx, 0x10001bb0
push eax
push dword [edi + 0xc]
mov ecx, 0x54
call fcn.1001a550
or esi, 0xffffffff
mov dword [esp + 0x28], esi
jmp 0x10025af1
mov dx, word [ebp + 8]
cmp dx, 2
je 0x10025de6
cmp dx, 4
jne 0x10025e1b
cmp dword [ebp + 0x10], 0
je 0x10025e1b
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x88]
movzx ebx, ax
mov eax, dword [esp + 0x54]
mov dword [ecx + ebx*4 - 4], eax
mov ecx, dword [edi + 0x8c]
mov eax, dword [esp + 0x6c]
mov dword [ecx + ebx*4 - 4], eax
cmp dx, 2
jne 0x10025e96
inc dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
test si, si
je 0x10025e26
cmp si, 1
jne 0x10025e30
test ebx, ebx
js 0x10025e30
inc dword [edi + 0xa8]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
movzx edx, ax
mov dword [esp + 0x28], edx
test ecx, ecx
je 0x10025f9b
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x74]
movzx ecx, ax
movzx edx, bx
mov dword [esp + 0x28], edx
lea eax, [ecx - 1]
cmp dword [esp + 0x30], eax
jbe case.default.0x100254ee
cmp dword [esp + 0x1c], 0
jl 0x10025f82
test si, si
je 0x10025e80
cmp si, 1
jne 0x10025f82
xor eax, eax
cmp word [ebp + 8], 4
sete al
lea eax, [eax*2 + 2]
jmp 0x10025f87
mov ecx, dword [edi + 0x3fc]
xor edx, edx
mov eax, dword [esp + 0x54]
add ecx, 0x34
mov dword [esp + 0x50], eax
call fcn.1001fd70
mov ecx, eax
test ecx, ecx
je 0x10025e17
cmp dword [ecx + 0x24], 0
jne 0x10025e17
mov eax, dword [esp + 0x40]
dec ebx
mov edx, dword [ecx + 0x20]
mov esi, dword [eax]
mov eax, dword [edi + 0x3fc]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x68], eax
test eax, eax
jne 0x10025efd
test edx, edx
je 0x10025eeb
mov eax, dword [ecx + 0xc]
imul eax, ebx
add eax, esi
add eax, edx
mov edx, dword [ecx + 0x34]
test edx, edx
jne 0x10025ef6
xor ecx, ecx
jmp 0x10025f21
lea ecx, [esi + ebx*4]
add ecx, edx
jmp 0x10025f21
test edx, edx
je 0x100260ca
mov eax, ebx
imul eax, dword [esp + 0x68]
add eax, esi
mov esi, dword [ecx + 0x34]
add eax, edx
test esi, esi
jne 0x10025f1b
xor ecx, ecx
jmp 0x10025f21
mov ecx, eax
sub ecx, edx
add ecx, esi
test eax, eax
je 0x1002512e
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov dword [eax], edx
test ecx, ecx
je 0x10025e1b
mov dword [ecx], 4
jmp 0x10025e1b
inc dword [esp + 0x18]
test si, si
je 0x10025f59
cmp si, 1
jne 0x10025f66
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.1001af40
mov eax, dword [edi + 0x64]
push 3
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_159]
mov ebx, eax
mov dword [esp + 0x1c], ebx
jmp 0x10025e1b
mov eax, 5
mov edx, dword [esp + 0xc]
mov word [edx + ecx*2 - 2], ax
movzx eax, bx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x100256f6
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
and dword [edi + 0x1c], 0xbfffffff
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
movzx eax, ax
test ecx, ecx
je 0x100261d4
cmp dword [esp + 0x14], 0
je 0x1002512e
cmp ecx, esi
jae 0x1002512e
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
and eax, 0xbfffffff
push ecx
mov dword [edi + 0x1c], eax
mov ecx, 0x57
jmp 0x10025256
mov eax, dword [edi + 0x64]
push 3
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_159]
mov ax, si
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
lea eax, [edi + 0x68]
mov edx, 0x10001bb0
push eax
push dword [edi + 0xc]
mov ecx, 0x43
call fcn.1001a550
and dword [edi + 0x1c], 0xbfffffff
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
and dword [edi + 0x1c], 0xbfffffff
push ecx
mov ecx, 0x53
jmp 0x10025256
mov eax, dword [esp + 0x10]
mov word [edi + 0xc4], ax
mov ax, word [ebp + 8]
mov word [edi + 0xc6], ax
mov eax, dword [esp + 0x14]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0x1c]
or eax, 0x6000000
mov dword [edi + 0xc0], ebx
cmp dword [ebp + 0x10], 0
mov dword [edi + 0xbc], edx
je 0x100260a9
or eax, 0x400
and eax, 0xbfffffff
mov dword [edi + 0x1c], eax
mov eax, 0x63
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push ecx
mov ecx, 0x16
jmp 0x10025256
mov dword [0], 0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
and dword [edi + 0x1c], 0xbfffffff
push ecx
push edi
push eax
mov ecx, 0x1e
call fcn.1001aff0
mov eax, dword [edi + 0x64]
push 3
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_159]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test ecx, ecx
jne 0x10026187
mov eax, dword [esp + 0x10]
movzx eax, ax
lea ecx, [eax*4]
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + ecx - 4]
test eax, eax
je 0x1002613c
cmp eax, 0xffffffff
jne 0x10026141
mov eax, 4
push eax
mov eax, dword [edi + 0x88]
add ecx, 0xfffffffc
add eax, ecx
push eax
mov eax, dword [edi + 0x64]
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_151]
test eax, eax
jns 0x10025fa7
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
and dword [edi + 0x1c], 0xbfffffff
push edi
push ecx
mov ecx, eax
call fcn.1001af40
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
and dword [edi + 0x1c], 0xbfffffff
mov ecx, 0x67
jmp 0x1002510c
mov dx, word [ebp + 8]
cmp dx, 1
jne 0x10025fab
cmp eax, dword [edi + 0x98]
jae 0x10025fab
mov edx, 3
inc ebx
test ecx, ecx
je 0x100261c4
movzx eax, bx
mov word [ecx + eax*2 - 2], dx
movzx eax, bx
cmp eax, dword [edi + 0x98]
jb 0x100261b7
jmp 0x10025fab
cmp dword [esp + 0x3c], 0
mov ebx, eax
jne 0x1002621e
mov ax, word [ebp + 8]
cmp ax, 3
je 0x100261ed
cmp ax, 2
jne 0x1002621e
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
lea eax, [edi + 0x68]
mov edx, 0x10001bb0
push eax
push dword [edi + 0xc]
mov ecx, 2
call fcn.1001a550
test bx, bx
jne 0x1002621e
mov ebx, 1
cmp dword [esp + 0x44], 0
jne 0x10025fe0
pop edi
pop esi
mov ax, bx
pop ebx
mov esp, ebp
pop ebp
ret 0xc