Function at 0x10024280
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 + 0x2c], 0
push esi
push edi
mov edi, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
mov esi, edx
mov dword [esp + 0x60], eax
xor edx, edx
lea eax, [esp + 0x60]
mov dword [esp + 0x14], esi
xor ebx, ebx
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x1c]
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], ebx
mov dword [esp + 0x3c], edx
test al, 0x40
je 0x10024314
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.10019d30
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test eax, 0x1000
je 0x1002433a
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x10024332
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x2e8]
jmp 0x1002435a
mov eax, dword [edi + 0x3fc]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x10024354
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x304]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10024393
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.1001c410
movzx ecx, ax
mov dword [esp + 0x34], ecx
test cx, cx
je 0x1002438e
cmp cx, 1
je 0x1002438e
mov ax, cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
xor edx, edx
mov cx, word [ebp + 8]
cmp cx, 4
je 0x1002447a
test eax, eax
jne 0x1002447a
test byte [edi + 0xcc], 3
je 0x100243d1
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x2b
call fcn.1001a7d0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp word [edi + 0x14], bx
je 0x10024424
movzx ecx, si
cmp ecx, dword [edi + 0x98]
jbe 0x10024401
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x65
call fcn.1001a7d0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test si, si
je 0x10024476
mov eax, dword [edi + 0x8c]
cmp dword [eax + ecx*4 - 4], ebx
jne 0x10024443
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10024424
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.1001a7d0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test si, si
je 0x10024476
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10024476
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 1
je 0x10024466
cmp eax, 5
jne 0x10024476
cmp word [ebp + 8], 1
je 0x10024476
mov edx, dword [esp + 0x10]
mov eax, 5
mov word [edx + ecx*2 - 2], ax
jmp 0x10024424
mov cx, word [ebp + 8]
movzx eax, word [ebp + 0xc]
dec eax
cmp eax, 1
ja 0x1002448e
mov ecx, 0x6a
jmp 0x100242e6
mov dword [edi + 0xa8], ebx
test si, si
je 0x100244a8
cmp cx, 4
je 0x100244a8
movzx eax, si
mov dword [edi + 0x9c], eax
mov ecx, dword [edi + 0x1c]
test ecx, 0x2000000
je 0x100244e9
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 + 0x14], esi
mov ebx, dword [eax + 4]
mov dword [esp + 0x18], ebx
jmp 0x100244f2
or ecx, 0x8000000
mov dword [edi + 0x1c], ecx
mov ax, word [ebp + 8]
cmp ax, 4
je 0x10024522
mov eax, dword [edi + 0x318]
and ecx, 0xdfffffff
mov dword [edi + 0x1c], ecx
test eax, eax
je 0x1002451e
nop
mov dword [eax + 0x58], 0
mov eax, dword [eax + 4]
test eax, eax
jne 0x10024510
mov ax, word [ebp + 8]
test si, si
jne 0x1002455e
mov ecx, 1
mov dword [esp + 0xc], ecx
cmp ax, 4
je 0x10024558
cmp dword [ebp + 0x10], 0
jne 0x10024558
cmp dword [edi + 0x98], 0
je 0x10025352
mov eax, dword [edi + 0x8c]
cmp dword [eax], 0
je 0x1002534e
mov esi, ecx
mov dword [esp + 0x14], esi
mov ecx, dword [edi + 0x3fc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x1002456f
mov dword [esp + 0x40], eax
cmp dword [ebp + 0x10], 0
je 0x1002459b
cmp word [ebp + 8], 4
je 0x1002459b
add ecx, 0x34
xor edx, edx
call fcn.1001f070
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x10024597
push ecx
lea ecx, [eax + 0x56]
jmp 0x1002442a
mov edx, dword [esp + 0x28]
movzx eax, word [ebp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x64], eax
test edx, edx
jne 0x100245b8
mov eax, dword [edi + 0x3fc]
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x18], ebx
test ecx, ecx
je 0x100245da
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x100245da
cmp dword [ebp + 0x10], 0
jne 0x100245e4
or dword [edi + 0x1c], 0x40000000
jmp 0x1002468b
cmp dword [ebp + 0x10], 0
je 0x1002468b
cmp word [ebp + 8], 4
je 0x1002468b
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 0x10024635
test ecx, ecx
jne 0x10024615
xor eax, eax
jmp 0x1002461f
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 0x1002462e
xor edx, edx
jmp 0x1002465c
lea edx, [edx + esi*4]
add edx, ecx
jmp 0x1002465c
test ecx, ecx
jne 0x10024644
xor eax, eax
xor edx, edx
mov dword [0], eax
jmp 0x1002465c
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 0x1002465c
sub edx, ecx
add edx, eax
mov ebx, dword [esp + 0x14]
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 0x10024683
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.0x10024698
jmp dword [eax*4 + 0x100253e4]
test ecx, ecx
je 0x100246be
mov edx, dword [esp + 0x10]
test edx, edx
je 0x100246be
mov eax, dword [esp + 0x14]
movzx eax, ax
cmp word [edx + eax*2 - 2], 1
je case.default.0x10024698
mov eax, dword [esp + 0x14]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
cmp eax, 0xffffffff
jne 0x100246f3
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x100246e6
mov eax, 1
mov word [ebx + esi*2 - 2], ax
test ecx, ecx
je 0x10024424
jmp 0x10024d3e
test eax, eax
jne 0x100246fc
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 0x10024755
cmp edx, 0xfffffc07
je 0x1002475d
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
push edi
push ecx
mov ecx, eax
call fcn.1001a730
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x1002474c
mov eax, 5
mov word [ebx + esi*2 - 2], ax
inc dword [esp + 0x20]
jmp 0x10024d32
cmp edx, 0xfffffc07
jne 0x10024798
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x1002476f
mov eax, 1
mov word [ebx + esi*2 - 2], ax
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x10024d3e
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
mov ecx, dword [esp + 0x1c]
push edi
push eax
call fcn.1001a730
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.1001b7f0
movzx eax, ax
mov dword [esp + 0x34], eax
test ax, ax
je 0x100247d2
cmp ax, 1
je 0x100247d2
inc dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x100247e1
mov eax, 5
jmp 0x100247dc
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x100247e1
xor eax, eax
mov word [ebx + esi*2 - 2], ax
cmp dword [esp + 0x68], 0
je 0x10024804
mov eax, dword [edi + 0x8c]
mov dword [eax + esi*4 - 4], 0xffffffff
test ebx, ebx
je 0x10024804
mov eax, 1
mov word [ebx + esi*2 - 2], ax
cmp dword [esp + 0x6c], 0
jne 0x100251c0
jmp 0x10024d32
mov edx, dword [edi + 0x64]
mov al, byte [edx + 0xa8]
cmp al, 0x1b
je 0x10024484
cmp al, 0x16
je 0x10024484
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025169
mov ebx, dword [esp + 0x10]
test ecx, ecx
je 0x1002488a
test ebx, ebx
je 0x1002488a
mov eax, dword [esp + 0x14]
movzx eax, ax
dec eax
lea ecx, [ebx + eax*2]
movzx eax, word [ecx]
cmp eax, 1
je 0x10024866
cmp eax, 5
jne 0x1002488a
inc dword [esp + 0x20]
mov eax, 5
push ecx
mov word [ecx], ax
lea eax, [edi + 0x68]
mov edx, dword [edi + 0xc]
mov ecx, 0x67
push edi
push eax
call fcn.1001a7d0
jmp 0x10024d32
mov eax, dword [esp + 0x14]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x100248a4
cmp eax, 0xffffffff
jne 0x100248a9
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 0x10024911
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 0x10024911
test ebx, ebx
je 0x100248f4
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 0x10024d32
test ebx, ebx
je 0x1002491f
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.1001a730
jmp 0x10024d32
mov ecx, dword [edi + 0x64]
mov al, byte [ecx + 0xa8]
cmp al, 0x1b
je 0x10024484
cmp al, 0x16
je 0x10024484
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025169
test edx, edx
jne 0x10024a03
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0xc], edx
je 0x10024990
test ebx, ebx
je 0x10024990
mov eax, dword [esp + 0x14]
movzx eax, ax
movzx eax, word [ebx + eax*2 - 2]
cmp eax, 1
je 0x10024d32
cmp eax, 5
je 0x10024d32
mov eax, dword [esp + 0x14]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x100249aa
cmp eax, 0xffffffff
jne 0x100249af
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 0x100249ff
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x20]
push edi
push eax
call fcn.1001a730
mov ecx, dword [esp + 0xc]
test ebx, ebx
je 0x10024d36
mov eax, 5
mov word [ebx + esi*2 - 2], ax
jmp 0x10024d36
mov edx, dword [esp + 0x28]
movzx eax, word [edi + 0xb8]
sub eax, 2
je 0x10024a19
sub eax, 2
jne case.0x10024698.4
lea ebx, [eax + 4]
jmp 0x10024a24
mov ebx, 2
jmp 0x10024a24
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 0x10024484
cmp al, 0x16
je 0x10024484
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10025169
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 0x10024ad1
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 0x10024ad1
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x20]
push edi
push eax
call fcn.1001a730
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x10024ac1
mov eax, dword [esp + 0x14]
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 0x10024d32
mov eax, dword [edi + 0x3fc]
cmp word [eax + 0x1c], si
je 0x10025261
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x10024c5b
mov edx, dword [esp + 0x24]
test dx, dx
je 0x10024b00
cmp dx, 1
jne 0x10024c57
cmp dword [ebx + 0x24], 0
je 0x10024c48
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x10024b17
mov dword [esp + 0x4c], eax
jmp 0x10024b6c
movsx eax, word [edi + 0x308]
and dword [edi + 0x1c], 0xbfffffff
cmp dword [ebx + 0x24], eax
ja 0x10025240
lea eax, [esp + 0x4c]
mov edx, ebx
push eax
mov ecx, edi
call fcn.10004e90
movzx esi, ax
mov dword [esp + 0x34], esi
test si, si
je 0x10024b52
cmp si, 1
jne 0x1002517c
cmp dword [esp + 0xc], 0
je 0x10024b6c
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x10024b6c
or dword [edi + 0x1c], 0x40000000
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
movzx ecx, ax
mov eax, dword [edi + 0x3fc]
dec ecx
mov esi, dword [eax + 0x28]
mov eax, dword [ebx + 0x20]
test esi, esi
jne 0x10024be7
test eax, eax
jne 0x10024b94
mov dword [esp + 0x28], esi
jmp 0x10024ba2
mov esi, dword [ebx + 0xc]
imul esi, ecx
add esi, edx
add esi, eax
mov dword [esp + 0x28], esi
mov ebx, dword [ebx + 0x34]
lea eax, [ecx*4]
test ebx, ebx
jne 0x10024bb8
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp 0x10024bc1
lea esi, [ebx + edx]
add esi, eax
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x30]
test ecx, ecx
jne 0x10024bd8
mov eax, dword [esp + 0x28]
xor esi, esi
mov edx, dword [esp + 0x18]
jmp 0x10024c24
lea esi, [eax + ecx]
mov eax, dword [esp + 0x28]
add esi, edx
mov edx, dword [esp + 0x18]
jmp 0x10024c24
test eax, eax
je 0x10024c44
mov ebx, dword [ebx + 0x34]
imul esi, ecx
add esi, edx
add esi, eax
mov dword [esp + 0x28], esi
test ebx, ebx
jne 0x10024c01
xor ecx, ecx
jmp 0x10024c07
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 0x10024c1c
mov eax, dword [esp + 0x28]
jmp 0x10024c24
sub esi, eax
mov eax, dword [esp + 0x28]
add esi, eax
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x10024d7e
test eax, eax
jne 0x10024d7e
test esi, esi
jne 0x10024d86
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10024af1
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
js 0x1002511e
test si, si
je 0x10024c76
cmp si, 1
jne 0x1002511e
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 0x10025024
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.1001a730
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test si, si
je 0x10024cbf
cmp si, 1
jne 0x10024cc9
test ecx, ecx
js 0x10024cc9
inc dword [edi + 0xa8]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x10]
movzx edx, ax
mov dword [esp + 0x2c], edx
test ebx, ebx
je 0x10024d32
mov eax, dword [esp + 0x14]
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 0x10024d32
cmp dword [esp + 0x1c], 0
jl 0x10025156
test si, si
je 0x10024d11
cmp si, 1
jne 0x10025156
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 0x1002534e
mov esi, dword [esp + 0x14]
movzx eax, si
cmp eax, dword [esp + 0x30]
jae 0x10025315
test ecx, ecx
je 0x10025315
cmp eax, dword [edi + 0x78]
jb 0x10024d6a
mov dx, word [ebp + 8]
cmp dx, 4
jne 0x10025319
mov ebx, dword [esp + 0x18]
inc esi
xor edx, edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], edx
jmp 0x100245a7
test esi, esi
jne 0x10024d86
lea esi, [esp + 0x70]
test ebx, ebx
jne 0x10024ed6
cmp dword [esi], 0xffffffff
je 0x10024ed6
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x44]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax + 8]
cmp cx, 0xfffe
je 0x100251d3
cmp cx, 0xfffd
je 0x100251d3
cmp cx, 0xfffc
je 0x100251d3
movzx eax, word [edx + 8]
cmp ax, 0xfff8
je 0x10024ead
cmp ax, 0xfff7
je 0x10024ead
cmp ax, 0xfff6
je 0x10024ead
cmp ax, 1
je 0x10024e8d
cmp ax, 0xc
je 0x10024e8d
cmp ax, 0xffff
je 0x10024e8d
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 0x10024e44
mov eax, 0x1e
jmp 0x10024e4f
mov eax, ebx
test bx, bx
js 0x10025199
cmp ax, word [ecx + 0x98]
jg 0x10025199
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 0x10024eda
mov ebx, dword [esp + 0x28]
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10024e96
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
jmp 0x10024ede
mov ebx, dword [esp + 0x28]
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10024eb6
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 0x10024ede
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x10024eed
cmp dword [esi], 0xffffffff
jne 0x10024eed
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 0x10024f3f
cmp ax, 1
je 0x10024f2a
cmp ax, 0xc
je 0x10024f2a
cmp ax, 0xffff
je 0x10024f2a
mov esi, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10024f13
sub esi, ecx
mov ecx, dword [esp + 0x18]
sar esi, 1
add esi, esi
jmp 0x10024f86
mov esi, ebx
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x10024f30
sub esi, ecx
mov ecx, dword [esp + 0x18]
jmp 0x10024f86
cmp ax, 0xfff8
je 0x10024f75
cmp ax, 0xfff7
je 0x10024f75
cmp ax, 0xfff6
je 0x10024f75
cmp ax, 1
je 0x10024f75
cmp ax, 0xc
je 0x10024f75
cmp ax, 0xffff
je 0x10024f75
cmp ax, 0xfffe
je 0x10024f75
cmp ax, 0xfffd
je 0x10024f75
cmp ax, 0xfffc
jne 0x10024f86
mov eax, dword [ecx + 0xc]
cmp eax, esi
jge 0x10024f86
mov esi, eax
mov dword [esp + 0x50], 1
cmp esi, 0xfffffffa
je 0x10024ffc
cmp esi, 0xfffffffe
je 0x100251e5
cmp esi, 0xffffff9c
jle 0x100251e5
test esi, esi
jns 0x10024fa6
cmp esi, 0xffffffff
jne 0x10025005
push dword [esp + 0x14]
mov ecx, edi
push dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x24]
mov edx, ebx
push esi
call fcn.100256b0
movzx edx, ax
mov dword [esp + 0x24], edx
test dx, dx
jne 0x10024fe2
cmp dword [esp + 0x50], 0
je 0x10024ff0
mov ecx, dword [esp + 0x2c]
mov dword [ecx], esi
or dword [edi + 0x1c], 0x8000000
jmp 0x10024c48
cmp dx, 1
jne 0x10024ff0
mov dword [esp + 0x5c], 1
or dword [edi + 0x1c], 0x8000000
jmp 0x10024c48
mov ebx, dword [esp + 0x18]
jmp 0x10024c48
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x54
call fcn.1001a7d0
or esi, 0xffffffff
mov dword [esp + 0x24], esi
jmp 0x10024c5b
mov dx, word [ebp + 8]
cmp dx, 2
je 0x10025042
cmp dx, 4
jne 0x10024cb4
cmp dword [ebp + 0x10], 0
je 0x10024cb4
mov eax, dword [esp + 0x14]
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 0x10025074
inc dword [esp + 0x38]
jmp 0x10024cb0
mov ecx, dword [edi + 0x3fc]
xor edx, edx
mov eax, dword [esp + 0x54]
add ecx, 0x34
mov dword [esp + 0x50], eax
call fcn.1001f070
mov ecx, eax
test ecx, ecx
je 0x10024cb0
cmp dword [ecx + 0x24], 0
jne 0x10024cb0
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 0x100250db
test edx, edx
je 0x100250c9
mov eax, dword [ecx + 0xc]
imul eax, ebx
add eax, esi
add eax, edx
mov edx, dword [ecx + 0x34]
test edx, edx
jne 0x100250d4
xor ecx, ecx
jmp 0x100250f9
lea ecx, [esi + ebx*4]
add ecx, edx
jmp 0x100250f9
test edx, edx
je 0x1002524b
mov ecx, dword [ecx + 0x34]
mov eax, ebx
imul eax, dword [esp + 0x70]
add eax, esi
add eax, edx
test ecx, ecx
je 0x100250f9
sub ecx, edx
add ecx, eax
test eax, eax
je 0x10024308
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x24]
mov dword [eax], edx
test ecx, ecx
je 0x10024cb0
mov dword [ecx], 4
jmp 0x10024cb0
inc dword [esp + 0x20]
test si, si
je 0x1002512d
cmp si, 1
jne 0x1002513a
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.1001a730
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 0x10024cb4
mov eax, 5
jmp 0x10024d22
mov ebx, dword [esp + 0x10]
jmp 0x10024d36
and eax, 0xbfffffff
push ecx
mov dword [edi + 0x1c], eax
mov ecx, 0x57
jmp 0x1002442a
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.10019d30
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 0x1002442a
mov eax, dword [esp + 0x14]
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
mov dword [edi + 0x1c], eax
je 0x1002522a
or eax, 0x400
mov dword [edi + 0x1c], eax
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 0x1002442a
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.1001a7d0
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 0x10025304
mov eax, dword [esp + 0x14]
movzx eax, ax
lea ecx, [eax*4]
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + ecx - 4]
test eax, eax
je 0x100252bd
cmp eax, 0xffffffff
jne 0x100252c2
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 0x1002534a
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
and dword [edi + 0x1c], 0xbfffffff
push edi
push ecx
mov ecx, eax
call fcn.1001a730
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 0x100242e6
mov dx, word [ebp + 8]
cmp dx, 1
jne 0x1002534e
cmp eax, dword [edi + 0x98]
jae 0x1002534e
mov edx, 3
lea esp, [esp]
inc esi
test ebx, ebx
je 0x1002533d
movzx eax, si
mov word [ebx + eax*2 - 2], dx
movzx eax, si
cmp eax, dword [edi + 0x98]
jb 0x10025330
jmp 0x1002534e
mov ecx, dword [esp + 0xc]
mov ax, word [ebp + 8]
and dword [edi + 0x1c], 0xbfffffff
mov edx, dword [esp + 0x20]
test edx, edx
je 0x10025381
test ecx, ecx
je 0x10024308
cmp edx, dword [esp + 0x30]
jae 0x10024308
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esp + 0x38], 0
jne 0x100253cb
cmp ax, 3
je 0x10025394
cmp ax, 2
jne 0x100253cb
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.10019d30
mov eax, dword [esp + 0x34]
test ax, ax
jne 0x100253cf
mov eax, 1
jmp 0x100253cf
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], 0
je 0x100253db
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc