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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
xor eax, eax
mov dword [esp + 8], edx
push esi
mov si, word [ebp + 0xc]
xor edx, edx
push edi
mov edi, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
xor ecx, ecx
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], ecx
test al, 0x40
je 0x10024cf6
lea ecx, [edx + 0x2b]
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
lea eax, [edi + 0x68]
mov edx, 0x10001ba0
push eax
push dword [edi + 0xc]
call fcn.1001a230
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test eax, 0x1000
je 0x10024d1c
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x10024d14
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x2e8]
jmp 0x10024d3c
mov eax, dword [edi + 0x3fc]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x10024d36
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x304]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x10024d6d
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.1001c9c0
movzx eax, ax
mov dword [esp + 0x34], eax
test ax, ax
je 0x10024d68
cmp ax, 1
jne 0x10025deb
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov ax, word [ebp + 8]
cmp ax, 4
je 0x10024e61
test ecx, ecx
jne 0x10024e61
test byte [edi + 0xcc], 3
je 0x10024dab
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x2b
call fcn.1001acc0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp word [edi + 0x14], 0
je 0x10024e04
mov eax, dword [esp + 0x10]
movzx ecx, ax
cmp ecx, dword [edi + 0x98]
jbe 0x10024de0
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x65
call fcn.1001acc0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test ax, ax
je 0x10024e5d
mov eax, dword [edi + 0x8c]
cmp dword [eax + ecx*4 - 4], 0
jne 0x10024e23
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10024e04
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.1001acc0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x10]
test ax, ax
je 0x10024e5d
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10024e5d
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 1
je 0x10024e4d
cmp eax, 5
mov ax, word [ebp + 8]
jne 0x10024e61
cmp ax, 1
je 0x10024e61
mov edx, dword [esp + 0x14]
mov eax, 5
mov word [edx + ecx*2 - 2], ax
jmp 0x10024e04
mov ax, word [ebp + 8]
test si, si
je 0x10024e76
cmp si, 2
ja 0x10024e76
mov ecx, 0x6a
jmp 0x10024cc8
mov esi, dword [esp + 0x10]
mov dword [edi + 0xa8], 0
test si, si
je 0x10024e98
cmp ax, 4
je 0x10024e98
movzx eax, si
mov dword [edi + 0x9c], eax
mov ecx, dword [edi + 0x1c]
test ecx, 0x2000000
je 0x10024ed9
mov eax, dword [edi + 0xc8]
and ecx, 0xfdfffbff
movzx esi, word [edi + 0xc4]
mov edx, 1
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0xc0]
mov dword [edi + 0x1c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], esi
mov ebx, dword [eax + 4]
mov dword [esp + 0x18], ebx
jmp 0x10024ee4
or ecx, 0x8000000
xor ebx, ebx
mov dword [edi + 0x1c], ecx
mov ax, word [ebp + 8]
cmp ax, 4
je 0x10024f13
mov eax, dword [edi + 0x318]
and ecx, 0xdfffffff
mov dword [edi + 0x1c], ecx
test eax, eax
je 0x10024f0f
mov dword [eax + 0x58], 0
mov eax, dword [eax + 4]
test eax, eax
jne 0x10024f01
mov ax, word [ebp + 8]
test si, si
jne 0x10024f4f
mov ecx, 1
mov dword [esp + 0xc], ecx
cmp ax, 4
je 0x10024f49
cmp dword [ebp + 0x10], 0
jne 0x10024f49
cmp dword [edi + 0x98], 0
je 0x10025d62
mov eax, dword [edi + 0x8c]
cmp dword [eax], 0
je 0x10025d5e
mov esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [edi + 0x3fc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x10024f60
mov dword [esp + 0x40], eax
cmp dword [ebp + 0x10], 0
je 0x10024f8c
cmp word [ebp + 8], 4
je 0x10024f8c
add ecx, 0x34
xor edx, edx
call fcn.1001f9c0
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x10024f88
push ecx
lea ecx, [eax + 0x56]
jmp 0x10024e0a
mov edx, dword [esp + 0x28]
movzx eax, word [ebp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x64], eax
test edx, edx
jne 0x10024fa9
mov eax, dword [edi + 0x3fc]
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x18], ebx
test ecx, ecx
je 0x10024fcb
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x10024fcb
cmp dword [ebp + 0x10], 0
jne 0x10024fd5
or dword [edi + 0x1c], 0x40000000
jmp 0x1002507c
cmp dword [ebp + 0x10], 0
je 0x1002507c
cmp word [ebp + 8], 4
je 0x1002507c
mov eax, dword [esp + 0x40]
movzx esi, si
dec esi
mov edx, dword [eax]
mov eax, dword [edi + 0x3fc]
mov ebx, dword [eax + 0x28]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x20]
test ebx, ebx
jne 0x10025026
test ecx, ecx
jne 0x10025006
xor eax, eax
jmp 0x10025010
mov eax, dword [eax + 0xc]
imul eax, esi
add eax, ecx
add eax, edx
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x34]
test ecx, ecx
jne 0x1002501f
xor edx, edx
jmp 0x1002504d
lea edx, [edx + esi*4]
add edx, ecx
jmp 0x1002504d
test ecx, ecx
jne 0x10025035
xor eax, eax
xor edx, edx
mov dword [0], eax
jmp 0x1002504d
mov eax, esi
imul eax, ebx
mov ebx, dword [esp + 0x3c]
add eax, ecx
add eax, edx
mov edx, dword [ebx + 0x34]
test edx, edx
je 0x1002504d
sub edx, ecx
add edx, eax
mov ebx, dword [esp + 0x10]
mov ecx, dword [edi + 0x88]
mov eax, dword [eax]
movzx esi, bx
mov ebx, dword [esp + 0x18]
mov dword [ecx + esi*4 - 4], eax
test edx, edx
je 0x10025074
mov ecx, dword [edi + 0x8c]
mov eax, dword [edx]
mov dword [ecx + esi*4 - 4], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x64]
cmp eax, 4
ja case.default.0x10025089
jmp dword [eax*4 + 0x10025df4]
test ecx, ecx
je 0x100250af
mov edx, dword [esp + 0x14]
test edx, edx
je 0x100250af
mov eax, dword [esp + 0x10]
movzx eax, ax
cmp word [edx + eax*2 - 2], 1
je case.default.0x10025089
mov eax, dword [esp + 0x10]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
cmp eax, 0xffffffff
jne 0x100250e4
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100250d7
mov eax, 1
mov word [ebx + esi*2 - 2], ax
test ecx, ecx
je 0x10024e04
jmp 0x1002573d
test eax, eax
jne 0x100250ed
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 edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jns 0x10025181
cmp edx, 0xfffffc07
je 0x10025146
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
push edi
push ecx
mov ecx, eax
call fcn.1001ac20
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x1002513d
mov eax, 5
mov word [ebx + esi*2 - 2], ax
inc dword [esp + 0x20]
jmp 0x10025731
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x10025158
mov eax, 1
mov word [ebx + esi*2 - 2], ax
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x1002573d
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
mov ecx, dword [esp + 0x1c]
push edi
push eax
call fcn.1001ac20
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [esp + 0x68]
mov ecx, edi
push eax
lea eax, [esp + 0x70]
push eax
push ebx
lea edx, [esi - 1]
call fcn.1001bcd0
movzx eax, ax
mov dword [esp + 0x34], eax
test ax, ax
je 0x100251bb
cmp ax, 1
je 0x100251bb
inc dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100251ca
mov eax, 5
jmp 0x100251c5
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100251ca
xor eax, eax
mov word [ebx + esi*2 - 2], ax
cmp dword [esp + 0x68], 0
je 0x100251ed
mov eax, dword [edi + 0x8c]
mov dword [eax + esi*4 - 4], 0xffffffff
test ebx, ebx
je 0x100251ed
mov eax, 1
mov word [ebx + esi*2 - 2], ax
cmp dword [esp + 0x6c], 0
jne 0x10025bda
jmp 0x10025731
mov edx, dword [edi + 0x64]
mov al, byte [edx + 0xa8]
cmp al, 0x1b
je 0x10024e6c
cmp al, 0x16
je 0x10024e6c
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025b83
mov ebx, dword [esp + 0x14]
test ecx, ecx
je 0x10025288
test ebx, ebx
je 0x10025288
mov eax, dword [esp + 0x10]
movzx eax, ax
lea ecx, [ebx + eax*2]
movzx eax, word [ecx - 2]
cmp eax, 1
je 0x1002524f
cmp eax, 5
jne 0x10025288
inc dword [esp + 0x20]
mov eax, 5
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
mov word [ecx - 2], ax
mov edx, 0x10001ba0
push 0xa4d8
lea eax, [edi + 0x68]
mov ecx, 0x67
push eax
push dword [edi + 0xc]
call fcn.1001a230
jmp 0x10025731
mov eax, dword [esp + 0x10]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x100252a2
cmp eax, 0xffffffff
jne 0x100252a7
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 0x1002530f
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 0x1002530f
test ebx, ebx
je 0x100252f2
mov eax, 1
mov word [ebx + esi*2 - 2], ax
mov eax, dword [edi + 0x8c]
mov dword [eax + esi*4 - 4], 0xffffffff
inc dword [edi + 0xa8]
inc dword [esp + 0x38]
jmp 0x10025731
test ebx, ebx
je 0x1002531d
mov eax, 5
mov word [ebx + esi*2 - 2], ax
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x20]
push edi
push eax
call fcn.1001ac20
jmp 0x10025731
mov ecx, dword [edi + 0x64]
mov al, byte [ecx + 0xa8]
cmp al, 0x1b
je 0x10024e6c
cmp al, 0x16
je 0x10024e6c
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025b83
test edx, edx
jne 0x10025401
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0xc], edx
je 0x1002538e
test ebx, ebx
je 0x1002538e
mov eax, dword [esp + 0x10]
movzx eax, ax
movzx eax, word [ebx + eax*2 - 2]
cmp eax, 1
je 0x10025731
cmp eax, 5
je 0x10025731
mov eax, dword [esp + 0x10]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x100253a8
cmp eax, 0xffffffff
jne 0x100253ad
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 ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jns 0x100253fd
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x20]
push edi
push eax
call fcn.1001ac20
mov ecx, dword [esp + 0xc]
test ebx, ebx
je 0x10025735
mov eax, 5
mov word [ebx + esi*2 - 2], ax
jmp 0x10025735
mov edx, dword [esp + 0x28]
movzx eax, word [edi + 0xb8]
sub eax, 2
je 0x10025417
sub eax, 2
jne case.0x10025089.4
lea ebx, [eax + 4]
jmp 0x10025422
mov ebx, 2
jmp 0x10025422
mov ebx, dword [esp + 0x2c]
mov ecx, dword [edi + 0x64]
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x50], esi
mov al, byte [ecx + 0xa8]
cmp al, 0x1b
je 0x10024e6c
cmp al, 0x16
je 0x10024e6c
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025b83
xor eax, eax
cmp word [ebp + 8], 4
sete al
dec eax
and eax, ebx
movzx eax, ax
movzx ebx, ax
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], ebx
test edx, edx
jne 0x100254cf
cwde
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 0x100254cf
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x20]
push edi
push eax
call fcn.1001ac20
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100254bf
mov eax, dword [esp + 0x10]
mov ecx, 5
movzx eax, ax
mov word [ebx + eax*2 - 2], cx
mov eax, dword [esp + 0x58]
movzx edx, ax
mov dword [esp + 0x2c], edx
jmp 0x10025731
mov eax, dword [edi + 0x3fc]
cmp word [eax + 0x1c], si
je 0x10025c75
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x1002565a
mov edx, dword [esp + 0x24]
nop
test dx, dx
je 0x100254ff
cmp dx, 1
jne 0x10025656
cmp dword [ebx + 0x24], 0
je 0x10025647
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x10025516
mov dword [esp + 0x4c], eax
jmp 0x1002556b
movsx eax, word [edi + 0x308]
and dword [edi + 0x1c], 0xbfffffff
cmp dword [ebx + 0x24], eax
ja 0x10025c54
lea eax, [esp + 0x4c]
mov edx, ebx
push eax
mov ecx, edi
call fcn.10004ec0
movzx esi, ax
mov dword [esp + 0x34], esi
test si, si
je 0x10025551
cmp si, 1
jne 0x10025b96
cmp dword [esp + 0xc], 0
je 0x1002556b
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x1002556b
or dword [edi + 0x1c], 0x40000000
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
movzx ecx, ax
mov eax, dword [edi + 0x3fc]
dec ecx
mov esi, dword [eax + 0x28]
mov eax, dword [ebx + 0x20]
test esi, esi
jne 0x100255e6
test eax, eax
jne 0x10025593
mov dword [esp + 0x28], esi
jmp 0x100255a1
mov esi, dword [ebx + 0xc]
imul esi, ecx
add esi, eax
add esi, edx
mov dword [esp + 0x28], esi
mov ebx, dword [ebx + 0x34]
lea eax, [ecx*4]
test ebx, ebx
jne 0x100255b7
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp 0x100255c0
lea esi, [eax + ebx]
add esi, edx
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x30]
test ecx, ecx
jne 0x100255d7
mov eax, dword [esp + 0x28]
xor esi, esi
mov edx, dword [esp + 0x18]
jmp 0x10025623
lea esi, [ecx + edx]
mov edx, dword [esp + 0x18]
add esi, eax
mov eax, dword [esp + 0x28]
jmp 0x10025623
test eax, eax
je 0x10025643
mov ebx, dword [ebx + 0x34]
imul esi, ecx
add esi, eax
add esi, edx
mov dword [esp + 0x28], esi
test ebx, ebx
jne 0x10025600
xor ecx, ecx
jmp 0x10025606
mov ecx, ebx
sub ecx, eax
add ecx, esi
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov esi, dword [edx + 0x30]
test esi, esi
jne 0x1002561b
mov eax, dword [esp + 0x28]
jmp 0x10025623
sub esi, eax
mov eax, dword [esp + 0x28]
add esi, eax
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x1002577d
test eax, eax
jne 0x1002577d
test esi, esi
jne 0x10025785
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x100254f0
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
js 0x10025b38
test si, si
je 0x10025675
cmp si, 1
jne 0x10025b38
lea eax, [esp + 0x74]
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 ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jns 0x10025a38
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.10057c80
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test si, si
je 0x100256be
cmp si, 1
jne 0x100256c8
test ecx, ecx
js 0x100256c8
inc dword [edi + 0xa8]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x14]
movzx edx, ax
mov dword [esp + 0x2c], edx
test ebx, ebx
je 0x10025731
mov eax, dword [esp + 0x10]
movzx ecx, ax
mov eax, dword [esp + 0x48]
movzx edx, ax
mov dword [esp + 0x2c], edx
lea eax, [ecx - 1]
cmp dword [esp + 0x30], eax
jbe 0x10025731
cmp dword [esp + 0x1c], 0
jl 0x10025b70
test si, si
je 0x10025710
cmp si, 1
jne 0x10025b70
xor eax, eax
cmp word [ebp + 8], 4
sete al
lea eax, [eax*2 + 2]
mov word [ebx + ecx*2 - 2], ax
mov eax, dword [esp + 0x48]
movzx eax, ax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x10025d5e
mov esi, dword [esp + 0x10]
movzx eax, si
cmp eax, dword [esp + 0x30]
jae 0x10025d29
test ecx, ecx
je 0x10025d29
cmp eax, dword [edi + 0x78]
jb 0x10025769
mov dx, word [ebp + 8]
cmp dx, 4
jne 0x10025d2d
mov ebx, dword [esp + 0x18]
inc esi
xor edx, edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], edx
jmp 0x10024f98
test esi, esi
jne 0x10025785
lea esi, [esp + 0x70]
test ebx, ebx
jne 0x100258d5
cmp dword [esi], 0xffffffff
je 0x100258d5
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x44]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax + 8]
cmp cx, 0xfffe
je 0x10025bed
cmp cx, 0xfffd
je 0x10025bed
cmp cx, 0xfffc
je 0x10025bed
movzx eax, word [edx + 8]
cmp ax, 0xfff8
je 0x100258ac
cmp ax, 0xfff7
je 0x100258ac
cmp ax, 0xfff6
je 0x100258ac
cmp ax, 1
je 0x1002588c
cmp ax, 0xc
je 0x1002588c
cmp ax, 0xffff
je 0x1002588c
mov edx, ecx
mov bx, 2
mov ecx, dword [edi + 0x64]
movzx eax, byte [ecx + 0xa9]
mov ecx, dword [ecx + 0xac]
mov dword [esp + 0x24], eax
lea eax, [edx - 0x5b]
cmp bx, ax
mov dword [esp + 0x44], ecx
sbb eax, eax
and eax, 0x52
add eax, 0xffffffca
add ax, dx
movzx ebx, ax
cmp dx, 0xfff4
jne 0x10025843
mov eax, 0x1e
jmp 0x1002584e
mov eax, ebx
test bx, bx
js 0x10025bb3
cmp ax, word [ecx + 0x98]
jg 0x10025bb3
mov edx, dword [esp + 0x44]
movsx ecx, ax
mov eax, dword [edx + 0x94]
movsx eax, word [eax + ecx*8 + 4]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4 + 0x7c]
xor edx, edx
mov dword [esp + 0x24], edx
mov eax, dword [eax + ecx*4 + 8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
jmp 0x100258d9
mov ebx, dword [esp + 0x28]
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10025895
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
jmp 0x100258dd
mov ebx, dword [esp + 0x28]
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100258b5
sub ecx, edx
mov edx, dword [esp + 0x24]
sar ecx, 1
lea eax, [ecx + ecx]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
jmp 0x100258dd
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x100258ec
cmp dword [esi], 0xffffffff
jne 0x100258ec
mov ecx, esi
mov dword [esp + 0x2c], ecx
mov esi, dword [ecx]
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx + 8]
cmp esi, 0xfffffffd
jne 0x1002593f
cmp ax, 1
je 0x10025929
cmp ax, 0xc
je 0x10025929
cmp ax, 0xffff
je 0x10025929
mov esi, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10025912
sub esi, ecx
mov ecx, dword [esp + 0x18]
sar esi, 1
add esi, esi
jmp 0x10025986
mov esi, ebx
lea ecx, [esi + 1]
mov edi, edi
mov al, byte [esi]
inc esi
test al, al
jne 0x10025930
sub esi, ecx
mov ecx, dword [esp + 0x18]
jmp 0x10025986
cmp ax, 0xfff8
je 0x10025975
cmp ax, 0xfff7
je 0x10025975
cmp ax, 0xfff6
je 0x10025975
cmp ax, 1
je 0x10025975
cmp ax, 0xc
je 0x10025975
cmp ax, 0xffff
je 0x10025975
cmp ax, 0xfffe
je 0x10025975
cmp ax, 0xfffd
je 0x10025975
cmp ax, 0xfffc
jne 0x10025986
mov eax, dword [ecx + 0xc]
cmp eax, esi
jge 0x10025986
mov esi, eax
mov dword [esp + 0x50], 1
cmp esi, 0xfffffffa
je 0x100259fc
cmp esi, 0xfffffffe
je 0x10025bff
cmp esi, 0xffffff9c
jle 0x10025bff
test esi, esi
jns 0x100259a6
cmp esi, 0xffffffff
jne 0x10025a05
push dword [esp + 0x10]
mov ecx, edi
push dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x24]
mov edx, ebx
push esi
call fcn.100260c0
movzx edx, ax
mov dword [esp + 0x24], edx
test dx, dx
jne 0x100259e2
cmp dword [esp + 0x50], 0
je 0x100259f0
mov ecx, dword [esp + 0x2c]
mov dword [ecx], esi
or dword [edi + 0x1c], 0x8000000
jmp 0x10025647
cmp dx, 1
jne 0x100259f0
mov dword [esp + 0x5c], 1
or dword [edi + 0x1c], 0x8000000
jmp 0x10025647
mov ebx, dword [esp + 0x18]
jmp 0x10025647
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
lea eax, [edi + 0x68]
mov edx, 0x10001ba0
push eax
push dword [edi + 0xc]
mov ecx, 0x54
call fcn.1001a230
or esi, 0xffffffff
mov dword [esp + 0x24], esi
jmp 0x1002565a
mov dx, word [ebp + 8]
cmp dx, 2
je 0x10025a56
cmp dx, 4
jne 0x100256b3
cmp dword [ebp + 0x10], 0
je 0x100256b3
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 + 0x74]
mov dword [ecx + ebx*4 - 4], eax
cmp dx, 2
jne 0x10025a88
inc dword [esp + 0x38]
jmp 0x100256af
mov ecx, dword [edi + 0x3fc]
xor edx, edx
mov eax, dword [esp + 0x54]
add ecx, 0x34
mov dword [esp + 0x50], eax
call fcn.1001f9c0
mov ecx, eax
test ecx, ecx
je 0x100256af
cmp dword [ecx + 0x24], 0
jne 0x100256af
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 + 0x70], eax
test eax, eax
jne 0x10025aef
test edx, edx
je 0x10025add
mov eax, dword [ecx + 0xc]
imul eax, ebx
add eax, esi
add eax, edx
mov edx, dword [ecx + 0x34]
test edx, edx
jne 0x10025ae8
xor ecx, ecx
jmp 0x10025b13
lea ecx, [esi + ebx*4]
add ecx, edx
jmp 0x10025b13
test edx, edx
je 0x10025c5f
mov eax, ebx
imul eax, dword [esp + 0x70]
add eax, esi
mov esi, dword [ecx + 0x34]
add eax, edx
test esi, esi
jne 0x10025b0d
xor ecx, ecx
jmp 0x10025b13
mov ecx, eax
sub ecx, edx
add ecx, esi
test eax, eax
je 0x10024cea
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x24]
mov dword [eax], edx
test ecx, ecx
je 0x100256af
mov dword [ecx], 4
jmp 0x100256af
inc dword [esp + 0x20]
test si, si
je 0x10025b47
cmp si, 1
jne 0x10025b54
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.1001ac20
mov eax, dword [edi + 0x64]
push 3
push dword [edi + 0x20]
push dword [eax + 0x54]
call dword [sym.imp.msjet40.dll_Ordinal_159]
mov ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x100256b3
mov eax, 5
jmp 0x10025721
mov ebx, dword [esp + 0x14]
jmp 0x10025735
and eax, 0xbfffffff
push ecx
mov dword [edi + 0x1c], eax
mov ecx, 0x57
jmp 0x10024e0a
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, 0x10001ba0
push eax
push dword [edi + 0xc]
mov ecx, 0x43
call fcn.1001a230
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 0x10024e0a
mov eax, dword [esp + 0x10]
mov word [edi + 0xc4], ax
mov ax, word [ebp + 8]
mov word [edi + 0xc6], ax
mov eax, dword [esp + 0xc]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0x1c]
or eax, 0x6000000
mov dword [edi + 0xc0], ecx
cmp dword [ebp + 0x10], 0
mov dword [edi + 0xbc], ebx
je 0x10025c3e
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 0x10024e0a
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.1001acc0
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 0x10025d18
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 0x10025cd1
cmp eax, 0xffffffff
jne 0x10025cd6
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 0x10025d5a
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
and dword [edi + 0x1c], 0xbfffffff
push edi
push ecx
mov ecx, eax
call fcn.1001ac20
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 0x10024cc8
mov dx, word [ebp + 8]
cmp dx, 1
jne 0x10025d5e
cmp eax, dword [edi + 0x98]
jae 0x10025d5e
mov edx, 3
inc esi
test ebx, ebx
je 0x10025d4d
movzx eax, si
mov word [ebx + eax*2 - 2], dx
movzx eax, si
cmp eax, dword [edi + 0x98]
jb 0x10025d40
jmp 0x10025d5e
mov ecx, dword [esp + 0xc]
mov ax, word [ebp + 8]
and dword [edi + 0x1c], 0xbfffffff
mov edx, dword [esp + 0x20]
test edx, edx
je 0x10025d91
test ecx, ecx
je 0x10024cea
cmp edx, dword [esp + 0x30]
jae 0x10024cea
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esp + 0x38], 0
jne 0x10025ddb
cmp ax, 3
je 0x10025da4
cmp ax, 2
jne 0x10025ddb
push 0
push edi
push 0xfffffffffffffffe
push 0xfffffffffffffffe
push 0xa410
push 0xa4d8
lea eax, [edi + 0x68]
mov edx, 0x10001ba0
push eax
push dword [edi + 0xc]
mov ecx, 2
call fcn.1001a230
mov eax, dword [esp + 0x34]
test ax, ax
jne 0x10025ddf
mov eax, 1
jmp 0x10025ddf
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], 0
je 0x10025deb
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc