Function at 0x10023d70
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]
movzx ebx, si
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 0x10023e09
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.10019780
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test eax, 0x1000
je 0x10023e2f
mov ecx, dword [edi + 0x94]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x10023e27
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x2e8]
jmp 0x10023e4f
mov eax, dword [edi + 0x3fc]
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x30], ecx
cmp ecx, 1
jae 0x10023e49
mov dword [esp + 0x30], 1
mov eax, dword [edi + 0x304]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x10023e80
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.1001be30
movzx eax, ax
mov dword [esp + 0x34], eax
test ax, ax
je 0x10023e7b
cmp ax, 1
jne 0x10024ee1
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov ax, word [ebp + 8]
cmp ax, 4
je 0x10023f74
test ecx, ecx
jne 0x10023f74
test byte [edi + 0xcc], 3
je 0x10023ebe
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x2b
call fcn.1001a220
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp word [edi + 0x14], 0
je 0x10023f17
mov eax, dword [esp + 0x10]
movzx ecx, ax
cmp ecx, dword [edi + 0x98]
jbe 0x10023ef3
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x65
call fcn.1001a220
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test ax, ax
je 0x10023f70
mov eax, dword [edi + 0x8c]
cmp dword [eax + ecx*4 - 4], 0
jne 0x10023f36
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10023f17
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.1001a220
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 0x10023f70
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10023f70
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 1
je 0x10023f60
cmp eax, 5
mov ax, word [ebp + 8]
jne 0x10023f74
cmp ax, 1
je 0x10023f74
mov edx, dword [esp + 0x14]
mov eax, 5
mov word [edx + ecx*2 - 2], ax
jmp 0x10023f17
mov ax, word [ebp + 8]
test bx, bx
je 0x10023f89
cmp si, 2
ja 0x10023f89
mov ecx, 0x6a
jmp 0x10023ddb
mov esi, dword [esp + 0x10]
mov dword [edi + 0xa8], 0
test si, si
je 0x10023fab
cmp ax, 4
je 0x10023fab
movzx eax, si
mov dword [edi + 0x9c], eax
mov ecx, dword [edi + 0x1c]
test ecx, 0x2000000
je 0x10023fec
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 0x10023ff7
or ecx, 0x8000000
xor ebx, ebx
mov dword [edi + 0x1c], ecx
mov ax, word [ebp + 8]
cmp ax, 4
je 0x10024026
mov eax, dword [edi + 0x318]
and ecx, 0xdfffffff
mov dword [edi + 0x1c], ecx
test eax, eax
je 0x10024022
mov dword [eax + 0x58], 0
mov eax, dword [eax + 4]
test eax, eax
jne 0x10024014
mov ax, word [ebp + 8]
test si, si
jne 0x10024062
mov ecx, 1
mov dword [esp + 0xc], ecx
cmp ax, 4
je 0x1002405c
cmp dword [ebp + 0x10], 0
jne 0x1002405c
cmp dword [edi + 0x98], 0
je 0x10024e58
mov eax, dword [edi + 0x8c]
cmp dword [eax], 0
je 0x10024e54
mov esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [edi + 0x3fc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x10024073
mov dword [esp + 0x40], eax
cmp dword [ebp + 0x10], 0
je 0x1002409f
cmp word [ebp + 8], 4
je 0x1002409f
add ecx, 0x34
xor edx, edx
call fcn.1001eb90
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x1002409b
push ecx
lea ecx, [eax + 0x56]
jmp 0x10023f1d
mov edx, dword [esp + 0x28]
movzx eax, word [ebp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x64], eax
jmp 0x100240b0
test edx, edx
jne 0x100240c1
mov eax, dword [edi + 0x3fc]
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x18], ebx
test ecx, ecx
je 0x100240e3
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x100240e3
cmp dword [ebp + 0x10], 0
jne 0x100240ed
or dword [edi + 0x1c], 0x40000000
jmp 0x10024194
cmp dword [ebp + 0x10], 0
je 0x10024194
cmp word [ebp + 8], 4
je 0x10024194
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 0x1002413e
test ecx, ecx
jne 0x1002411e
xor eax, eax
jmp 0x10024128
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 0x10024137
xor edx, edx
jmp 0x10024165
lea edx, [edx + esi*4]
add edx, ecx
jmp 0x10024165
test ecx, ecx
jne 0x1002414d
xor eax, eax
xor edx, edx
mov dword [0], eax
jmp 0x10024165
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 0x10024165
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 0x1002418c
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.0x100241a1
jmp dword [eax*4 + 0x10024eec]
test ecx, ecx
je 0x100241c7
mov edx, dword [esp + 0x14]
test edx, edx
je 0x100241c7
mov eax, dword [esp + 0x10]
movzx eax, ax
cmp word [edx + eax*2 - 2], 1
je case.default.0x100241a1
mov eax, dword [esp + 0x10]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
cmp eax, 0xffffffff
jne 0x100241fc
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100241ef
mov eax, 1
mov word [ebx + esi*2 - 2], ax
test ecx, ecx
je 0x10023f17
jmp 0x1002484d
test eax, eax
jne 0x10024205
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 0x1002425e
cmp edx, 0xfffffc07
je 0x10024266
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
push edi
push ecx
mov ecx, eax
call fcn.1001a180
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x10024255
mov eax, 5
mov word [ebx + esi*2 - 2], ax
inc dword [esp + 0x20]
jmp 0x10024841
cmp edx, 0xfffffc07
jne 0x100242a1
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x10024278
mov eax, 1
mov word [ebx + esi*2 - 2], ax
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x1002484d
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
mov ecx, dword [esp + 0x1c]
push edi
push eax
call fcn.1001a180
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.1001b210
movzx eax, ax
mov dword [esp + 0x34], eax
test ax, ax
je 0x100242db
cmp ax, 1
je 0x100242db
inc dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100242ea
mov eax, 5
jmp 0x100242e5
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100242ea
xor eax, eax
mov word [ebx + esi*2 - 2], ax
cmp dword [esp + 0x68], 0
je 0x1002430d
mov eax, dword [edi + 0x8c]
mov dword [eax + esi*4 - 4], 0xffffffff
test ebx, ebx
je 0x1002430d
mov eax, 1
mov word [ebx + esi*2 - 2], ax
cmp dword [esp + 0x6c], 0
jne 0x10024cd0
jmp 0x10024841
mov edx, dword [edi + 0x64]
mov al, byte [edx + 0xa8]
cmp al, 0x1b
je 0x10023f7f
cmp al, 0x16
je 0x10023f7f
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10024c79
mov ebx, dword [esp + 0x14]
test ecx, ecx
je 0x10024393
test ebx, ebx
je 0x10024393
mov eax, dword [esp + 0x10]
movzx eax, ax
dec eax
lea ecx, [ebx + eax*2]
movzx eax, word [ecx]
cmp eax, 1
je 0x1002436f
cmp eax, 5
jne 0x10024393
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.1001a220
jmp 0x10024841
mov eax, dword [esp + 0x10]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x100243ad
cmp eax, 0xffffffff
jne 0x100243b2
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 0x1002441a
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 0x1002441a
test ebx, ebx
je 0x100243fd
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 0x10024841
test ebx, ebx
je 0x10024428
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.1001a180
jmp 0x10024841
mov ecx, dword [edi + 0x64]
mov al, byte [ecx + 0xa8]
cmp al, 0x1b
je 0x10023f7f
cmp al, 0x16
je 0x10023f7f
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10024c79
test edx, edx
jne 0x1002450c
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0xc], edx
je 0x10024499
test ebx, ebx
je 0x10024499
mov eax, dword [esp + 0x10]
movzx eax, ax
movzx eax, word [ebx + eax*2 - 2]
cmp eax, 1
je 0x10024841
cmp eax, 5
je 0x10024841
mov eax, dword [esp + 0x10]
movzx esi, ax
mov eax, dword [edi + 0x8c]
mov eax, dword [eax + esi*4 - 4]
test eax, eax
je 0x100244b3
cmp eax, 0xffffffff
jne 0x100244b8
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 0x10024508
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x20]
push edi
push eax
call fcn.1001a180
mov ecx, dword [esp + 0xc]
test ebx, ebx
je 0x10024845
mov eax, 5
mov word [ebx + esi*2 - 2], ax
jmp 0x10024845
mov edx, dword [esp + 0x28]
movzx eax, word [edi + 0xb8]
sub eax, 2
je 0x10024522
sub eax, 2
jne case.0x100241a1.4
lea ebx, [eax + 4]
jmp 0x1002452d
mov ebx, 2
jmp 0x1002452d
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 0x10023f7f
cmp al, 0x16
je 0x10023f7f
or dword [edi + 0x1c], 0x4000
mov eax, dword [edi + 0x1c]
test eax, 0x200200
jne 0x10024c79
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 0x100245da
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 0x100245da
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
inc dword [esp + 0x20]
push edi
push eax
call fcn.1001a180
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100245ca
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 0x10024841
mov eax, dword [edi + 0x3fc]
cmp word [eax + 0x1c], si
je 0x10024d6b
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x1002476a
mov edx, dword [esp + 0x24]
lea ebx, [ebx]
test dx, dx
je 0x1002460f
cmp dx, 1
jne 0x10024766
cmp dword [ebx + 0x24], 0
je 0x10024757
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x10024626
mov dword [esp + 0x4c], eax
jmp 0x1002467b
movsx eax, word [edi + 0x308]
and dword [edi + 0x1c], 0xbfffffff
cmp dword [ebx + 0x24], eax
ja 0x10024d4a
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 0x10024661
cmp si, 1
jne 0x10024c8c
cmp dword [esp + 0xc], 0
je 0x1002467b
mov eax, dword [edi + 0xc]
test byte [eax + 0x3a20], 0x20
je 0x1002467b
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 0x100246f6
test eax, eax
jne 0x100246a3
mov dword [esp + 0x28], esi
jmp 0x100246b1
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 0x100246c7
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp 0x100246d0
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 0x100246e7
mov eax, dword [esp + 0x28]
xor esi, esi
mov edx, dword [esp + 0x18]
jmp 0x10024733
lea esi, [ecx + edx]
mov edx, dword [esp + 0x18]
add esi, eax
mov eax, dword [esp + 0x28]
jmp 0x10024733
test eax, eax
je 0x10024753
mov ebx, dword [ebx + 0x34]
imul esi, ecx
add esi, eax
add esi, edx
mov dword [esp + 0x28], esi
test ebx, ebx
jne 0x10024710
xor ecx, ecx
jmp 0x10024716
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 0x1002472b
mov eax, dword [esp + 0x28]
jmp 0x10024733
sub esi, eax
mov eax, dword [esp + 0x28]
add esi, eax
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x1002488d
test eax, eax
jne 0x1002488d
test esi, esi
jne 0x10024895
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x10024600
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
js 0x10024c2e
test si, si
je 0x10024785
cmp si, 1
jne 0x10024c2e
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 0x10024b34
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.1001a180
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test si, si
je 0x100247ce
cmp si, 1
jne 0x100247d8
test ecx, ecx
js 0x100247d8
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 0x10024841
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 0x10024841
cmp dword [esp + 0x1c], 0
jl 0x10024c66
test si, si
je 0x10024820
cmp si, 1
jne 0x10024c66
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 0x10024e54
mov esi, dword [esp + 0x10]
movzx eax, si
cmp eax, dword [esp + 0x30]
jae 0x10024e1f
test ecx, ecx
je 0x10024e1f
cmp eax, dword [edi + 0x78]
jb 0x10024879
mov dx, word [ebp + 8]
cmp dx, 4
jne 0x10024e23
mov ebx, dword [esp + 0x18]
inc esi
xor edx, edx
mov dword [esp + 0x10], esi
mov dword [esp + 0x28], edx
jmp 0x100240b0
test esi, esi
jne 0x10024895
lea esi, [esp + 0x70]
test ebx, ebx
jne 0x100249e5
cmp dword [esi], 0xffffffff
je 0x100249e5
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x44]
mov dword [esp + 0x2c], ecx
movzx ecx, word [eax + 8]
cmp cx, 0xfffe
je 0x10024ce3
cmp cx, 0xfffd
je 0x10024ce3
cmp cx, 0xfffc
je 0x10024ce3
movzx eax, word [edx + 8]
cmp ax, 0xfff8
je 0x100249bc
cmp ax, 0xfff7
je 0x100249bc
cmp ax, 0xfff6
je 0x100249bc
cmp ax, 1
je 0x1002499c
cmp ax, 0xc
je 0x1002499c
cmp ax, 0xffff
je 0x1002499c
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 0x10024953
mov eax, 0x1e
jmp 0x1002495e
mov eax, ebx
test bx, bx
js 0x10024ca9
cmp ax, word [ecx + 0x98]
jg 0x10024ca9
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 0x100249e9
mov ebx, dword [esp + 0x28]
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100249a5
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
jmp 0x100249ed
mov ebx, dword [esp + 0x28]
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100249c5
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 0x100249ed
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x100249fc
cmp dword [esi], 0xffffffff
jne 0x100249fc
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 0x10024a4f
cmp ax, 1
je 0x10024a39
cmp ax, 0xc
je 0x10024a39
cmp ax, 0xffff
je 0x10024a39
mov esi, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10024a22
sub esi, ecx
mov ecx, dword [esp + 0x18]
sar esi, 1
add esi, esi
jmp 0x10024a96
mov esi, ebx
lea ecx, [esi + 1]
mov edi, edi
mov al, byte [esi]
inc esi
test al, al
jne 0x10024a40
sub esi, ecx
mov ecx, dword [esp + 0x18]
jmp 0x10024a96
cmp ax, 0xfff8
je 0x10024a85
cmp ax, 0xfff7
je 0x10024a85
cmp ax, 0xfff6
je 0x10024a85
cmp ax, 1
je 0x10024a85
cmp ax, 0xc
je 0x10024a85
cmp ax, 0xffff
je 0x10024a85
cmp ax, 0xfffe
je 0x10024a85
cmp ax, 0xfffd
je 0x10024a85
cmp ax, 0xfffc
jne 0x10024a96
mov eax, dword [ecx + 0xc]
cmp eax, esi
jge 0x10024a96
mov esi, eax
mov dword [esp + 0x50], 1
cmp esi, 0xfffffffa
je 0x10024b0c
cmp esi, 0xfffffffe
je 0x10024cf5
cmp esi, 0xffffff9c
jle 0x10024cf5
test esi, esi
jns 0x10024ab6
cmp esi, 0xffffffff
jne 0x10024b15
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.100251b0
movzx edx, ax
mov dword [esp + 0x24], edx
test dx, dx
jne 0x10024af2
cmp dword [esp + 0x50], 0
je 0x10024b00
mov ecx, dword [esp + 0x2c]
mov dword [ecx], esi
or dword [edi + 0x1c], 0x8000000
jmp 0x10024757
cmp dx, 1
jne 0x10024b00
mov dword [esp + 0x5c], 1
or dword [edi + 0x1c], 0x8000000
jmp 0x10024757
mov ebx, dword [esp + 0x18]
jmp 0x10024757
mov edx, dword [edi + 0xc]
lea eax, [edi + 0x68]
push ecx
push edi
push eax
mov ecx, 0x54
call fcn.1001a220
or esi, 0xffffffff
mov dword [esp + 0x24], esi
jmp 0x1002476a
mov dx, word [ebp + 8]
cmp dx, 2
je 0x10024b52
cmp dx, 4
jne 0x100247c3
cmp dword [ebp + 0x10], 0
je 0x100247c3
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 0x10024b84
inc dword [esp + 0x38]
jmp 0x100247bf
mov ecx, dword [edi + 0x3fc]
xor edx, edx
mov eax, dword [esp + 0x54]
add ecx, 0x34
mov dword [esp + 0x50], eax
call fcn.1001eb90
mov ecx, eax
test ecx, ecx
je 0x100247bf
cmp dword [ecx + 0x24], 0
jne 0x100247bf
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 0x10024beb
test edx, edx
je 0x10024bd9
mov eax, dword [ecx + 0xc]
imul eax, ebx
add eax, esi
add eax, edx
mov edx, dword [ecx + 0x34]
test edx, edx
jne 0x10024be4
xor ecx, ecx
jmp 0x10024c09
lea ecx, [esi + ebx*4]
add ecx, edx
jmp 0x10024c09
test edx, edx
je 0x10024d55
mov ecx, dword [ecx + 0x34]
mov eax, ebx
imul eax, dword [esp + 0x70]
add eax, esi
add eax, edx
test ecx, ecx
je 0x10024c09
sub ecx, edx
add ecx, eax
test eax, eax
je 0x10023dfd
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x24]
mov dword [eax], edx
test ecx, ecx
je 0x100247bf
mov dword [ecx], 4
jmp 0x100247bf
inc dword [esp + 0x20]
test si, si
je 0x10024c3d
cmp si, 1
jne 0x10024c4a
mov edx, dword [edi + 0x64]
lea eax, [edi + 0x68]
push edi
push eax
call fcn.1001a180
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 0x100247c3
mov eax, 5
jmp 0x10024831
mov ebx, dword [esp + 0x14]
jmp 0x10024845
and eax, 0xbfffffff
push ecx
mov dword [edi + 0x1c], eax
mov ecx, 0x57
jmp 0x10023f1d
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.10019780
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 0x10023f1d
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 0x10024d34
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 0x10023f1d
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.1001a220
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 0x10024e0e
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 0x10024dc7
cmp eax, 0xffffffff
jne 0x10024dcc
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 0x10024e50
mov edx, dword [edi + 0x64]
lea ecx, [edi + 0x68]
and dword [edi + 0x1c], 0xbfffffff
push edi
push ecx
mov ecx, eax
call fcn.1001a180
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 0x10023ddb
mov dx, word [ebp + 8]
cmp dx, 1
jne 0x10024e54
cmp eax, dword [edi + 0x98]
jae 0x10024e54
mov edx, 3
inc esi
test ebx, ebx
je 0x10024e43
movzx eax, si
mov word [ebx + eax*2 - 2], dx
movzx eax, si
cmp eax, dword [edi + 0x98]
jb 0x10024e36
jmp 0x10024e54
mov ecx, dword [esp + 0xc]
mov ax, word [ebp + 8]
and dword [edi + 0x1c], 0xbfffffff
mov edx, dword [esp + 0x20]
test edx, edx
je 0x10024e87
test ecx, ecx
je 0x10023dfd
cmp edx, dword [esp + 0x30]
jae 0x10023dfd
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esp + 0x38], 0
jne 0x10024ed1
cmp ax, 3
je 0x10024e9a
cmp ax, 2
jne 0x10024ed1
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.10019780
mov eax, dword [esp + 0x34]
test ax, ax
jne 0x10024ed5
mov eax, 1
jmp 0x10024ed5
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], 0
je 0x10024ee1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc